使用docker-compose部署时,在输出的日志以及相关事件校验及输出时,导致事件与现实相差8小时。 排查问题:1.查看宿主机时间: # 查看时间dateWed Sep 29 11:12:44 CST 2021# 查看时区date -RWed, 29 Sep 2021 11:13:34 +0800 2.进入容器查看时间 # 查看所有容器docker ps -a# 进入容器docker eec -it [容器ID] /bin/bash# 查看时间date 此时看到的宿主机时间与docker容器的时间一样,此时各种百度,终于知道是timezone的问题 linux时间: 
容器时间: 
原因:宿主机设置了时区,而Docker容器并没有设置,导致两者相差8小时 CST应该是指(China Shanghai Time,东八区时间) UTC应该是指(Coordinated Universal Time,标准时间) 所以,这2个时间实际上应该相差8个小时 所以,必须统一两者的时区 解决方案:1.docker-compose配置卷挂载 volumes: - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime 2.Dockerfile运行命令以及输出对应时区到timezone中 RUN echo "Asia/shanghai" > /etc/timezone RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 3.删除容器,并重新运行 #删除docker rm [容器ID]# 启动docker-compose -f [文件名] up -d 总结:导致时差查2小时是容器中的/etc/timezone的问题,对此进行设置相应的时区即可。 下载地址: Tomcat源码导入idea的方法 5分钟教你实现用docker搭建Redis集群模式和哨兵模式 |