Docker 宿主机、容器、Tomcat应用日志时间不一致解决办法

说明:

1.在docker容器和系统时间不一致是因为docker容器的原生时区为0时区,而国内系统为东八区。
2.还有容器中运行的java应用打出的日志时间和通过date -R方式获取的容器标准时间有八个小时时间差。 也就是容器时间和系统时间一致,但是部署的应用和容器时间不一致。Tomcat中部署java应用为例。

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"

然后重启docker容器就可以了

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐