最近,电脑笔记网在 Docker 中安装 MySQL 时,发现 MySQL 时间与系统时间相差 8 个小时这是怎么回事呢,查询资料后发现,Docker 的默认时区是 0 区,这就会对安装的容器造成不少麻烦,比如执行日志的记录不准确等。我们今天就来教教大家 Docker 中 MySQL 时间与系统时间不一致怎么解决,看看能不能帮助到大家。
Docker 中 MySQL 时间与系统时间不一致怎么解决
首先,我们来看下 Docker 中 MySQL 时间与系统时间不一致是什么样的,下面是系统时间:
下面是进入 MySQL,输入命令:date 后,显示的时间:
我们可以发现这两者是不一样的,那么 Docker 中 MySQL 时间与系统时间不一致怎么解决呢,我们找到了两种解决办法,大家继续往下看。
一、复制主机的 localtime
需要使用下面的命令:
docker cp /etc/localtime [容器ID或者NAME]:/etc/localtime
需要注意的是,因为时区问题,上面的命令可能会报下面的错误:
Error response from daemon: Error processing tar file(exit status 1):
invalid symlink "/usr/share/zoneinfo/UCT" -> "../usr/share/zoneinfo/Asia/Shanghai"
这时,就需要去查看这文件:
而这个文件又引用了另一个地址,我们更换下上面的命令:
docker cp /usr/share/zoneinfo/Asia/Shanghai[容器ID或者NAME]:/etc/localtime
然后重启 Docker 即可。
二、使用主机的 localtime
我们在创建容器的时,就指定启动参数,挂载 localtime 文件到容器内,使用下面的命令即可:
docker run --name -v /etc/localtime 容器id:/etc/localtime:ro ....
这样,Docker 中 MySQL 时间与系统时间不一致的问题就可以解决了,以上这些内容就是 Docker 中 MySQL 时间与系统时间不一致怎么解决的教程,有本这个问题困扰的小伙伴赶紧来对照教程解决吧。
转载请注明:电脑笔记网 » Docker中MySQL时间与系统时间不一致怎么解决