docker----解决已运行容器与宿主机时间不一致问题

 

 

 

今天开发遇到个问题,mysql时间与服务器的时间不一致,导致查询出的数据比当前时间的晚一天。

 

由于服务器的环境是由我搭建的,清楚mysql是由docker来部署的,现在就开始排查问题:

 

进入docker  mysql容器    

 

docker exec -it cd344cce9bed bash

 

查看mysql容器的当前时间

date

  

 

发现比当前时间晚,再去查看宿主机的当前时间,发现容器比宿主机晚了8个小时

 

 后面百度发现

 中国服务器默认使用 CST(中国标准时间)

docker默认使用UTC(世界标准时间)

 

如宿主机使用CST(China Standard Time) 而docker容器使用UTC(Coordinated Universal Time),那么两者就会相差8小时

 

 

网上试过很多种方法,网上教程推荐较多的是【创建容器时挂载宿主机localtime文件到容器内】,但我mysql容器都已经在服务器上跑,难道还要删库,重新备份插入数据吗?

 

 

最后我使用修改容器时区方法解决容器与宿主机时间不一致,将时间切换到中国北京时间

 

查看宿主机时区

date -R

 

查看容器时区

 

 

时区不一致啦,现在开始修改容器时区

tzselect

 

yes后你会发现时区还是没有改过来

 

 最后一步

 

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date

 

 

检查一下,修改成功啦

 

posted @ 2018-12-19 09:07  奔波儿  阅读(926)  评论(0)    收藏  举报