客户提问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源创计划”,欢迎正在阅读的你也加入,一起分享。