Docker容器、Tomcat应用日志时间不一致如何解决


客户提问docke r容器时间和tomcat应用不一致如何解决。

一、问题情况如下:容器日志显示时间,差了8个小时

  • 错误时间

  • 正确时间

二、解决方法:

  • 1.解决docker容器与宿主机时间不一致问题:在启动容器时,把系统时间挂载到容器内,添加如下参数 -v /etc/localtime:/etc/localtime:ro //ro表示只读

  • 2.解决docker 容器与tomcat 应用打印日志时间不一致问题:在tomcat/bin/catalina.sh文件中修改tomcat JAVA_OPTS,添加如下内容

    JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8 -Duser.timezone=GMT+08

将配置文件,加载至容器

    - './config/catalina.sh:/usr/local/tomcat/bin/catalina.sh'

执行命令:重新加载卷

登录容器查看日志信息:

docker exec -it  2cbce5974658  /bin/bash  # 登录容器

总结:

  • 1.docker容器和系统时间不一致是因为docker容器的原生时区为0时区,而国内系统为东八区

  • 2.容器中运行的tomcat应用打出的日志时间和通过date -R方式获取的容器标准时间有八个小时时间差。也就是容器时间和系统时间一致,但是部署的应用和容器时间不一致。


爱运维^_^爱分享

===

本文分享自微信公众号 - Linux运维技术之路(Linux-devops)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

KVM调整cpu和内存

一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid