docker获取数据库时间相差8小时

有时我们在用docker时总会发现Docker容器时间与主机时间不一致,其实在docker容器和系统时间不一致是因为docker容器的原生时区为0时区,而国内系统为东八区

解决方法如下:

 方法一:

复制主机的localtime

1.查看docker名称/id

docker ps

2.进入docker 

docker exec -it [容器ID或者NAME] /bin/bash

3.查看时间

date

4.修改时间

docker cp /etc/localtime mymysql:/etc/localtime

注意:因为时区问题可能上面命令会报下面错误

Error response from daemon: Error processing tar file(exit status 1): invalid symlink "/etc/localtime" -> "../usr/share/zoneinfo/Asia/Shanghai"
解决方法:切换命令

docker cp /usr/share/zoneinfo/Asia/Shanghai[容器ID或者NAME]:/etc/localtime

5.重启docker

docker restart[容器ID或者NAME]

方法二:

共享主机的localtime

创建容器的时候指定启动参数,挂载localtime文件到容器内 ,保证两者所采用的时区是一致的。

docker run --name  -v /etc/localtime   容器id:/etc/localtime:ro ....
原文地址:https://www.cnblogs.com/lxz123/p/14278161.html