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 ....