说明:
1.在docker容器和系统时间不一致是因为docker容器的原生时区为0时区,而国内系统为东八区。
2.还有容器中运行的java应用打出的日志时间和通过date -R方式获取的容器标准时间有八个小时时间差。 也就是容器时间和系统时间一致,但是部署的应用和容器时间不一致。Tomcat中部署java应用为例。
1.解决docker容器与宿主机时间不一致问题:
方法1、在启动容器时,把系统时间挂载到容器内,添加如下参数 -v /etc/localtime:/etc/localtime:ro //ro表示只读 方法2、在容器中创建软链接文件 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2.解决docker 容器与tomcat 应用打印日志时间不一致问题:
在tomcat/bin/catalina.sh文件中修改tomcat JAVA_OPTS,添加如下内容 JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8 -Duser.timezone=GMT+08" 然后重启docker容器就可以了