问题描述:

通过docker启动mysql镜像,发现每次更新mysql数据的时候,时间和实际本地时间不一致,差8个小时。导致这一问题的原因:容器时间和本地时间不一致。

额外补充:

查看本地时间:打开终端,然后输入date 会车

查看容器时间:打开终端,进入容器,然后输入date 会车     或者 直接输入 docker exec -it <容器名> date 回车【这个命令就是将前两步合并】

在执行一下方法时,要确保本地的 localtime 文件存在,它的位置在etc文件夹下。在mac下通过执行cd ../../etc 然后执行ls,可以查看到localtime文件

方法一:在新建容器的时候加两个命令

docker run -itd \
--name mysql_33061 \
-p 33061:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /etc/timezone:/etc/timezone \
-v /etc/localtime:/etc/localtime \
mysql

以下两个命令表示同步本地与容器的时间
-v /etc/timezone:/etc/timezone
-v /etc/localtime:/etc/localtime
以上命令中反斜杠\表示换行

方法二:容器已经新建完成的情况下

1、进入容器

docker exec -it  容器名/ID /bin/bash

2、执行同步时间问题

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

 完成之后,重启docker容器【docker restart <容器名>】,刷新数据库或者断开重连一下