解决docker容器与宿主机相差8小时的问题
使用docker-compose部署时,在输出的日志以及相关事件校验及输出时,导致事件与现实相差8小时。
排查问题:
1.查看宿主机时间:
# 查看时间 date Wed Sep 29 11:12:44 CST 2021 # 查看时区 date -R Wed, 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的问题,对此进行设置相应的时区即可。
您可能感兴趣的文章
- 01-12Docker部署rabbitmq遇到的两个问题
- 01-12最新虚拟机VMware 14安装教程
- 01-12使用docker compose安装harbor私有仓库的详细教程
- 01-12Windows下Docker安装各种软件的详细过程
- 01-12seata docker 高可用部署的详细介绍
- 01-12浅谈Tomcat多层容器的设计
- 01-12Gogs+Jenkins+Docker 自动化部署.NetCore的方法步骤
- 01-12解决vscode docker插件docker.socket权限问题
- 01-12Docker中运行PostgreSQL并推荐几款连接工具
- 01-12Docker核心原理之 Cgroup详解


阅读排行
推荐教程
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-23linux中ftp无法访问怎么办
- 12-11docker存储目录迁移示例教程
- 12-10docker start启动容器后仍然exit状态的解决
- 12-10Linux下如何安装Logstash
- 12-05Docker安装Jenkins全过程
- 01-05Shell脚本去重的几种方法实例
- 12-22kvm虚拟机配置NAT端口转发的实现方法
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法




