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
检查一下,修改成功啦


浙公网安备 33010602011771号