Docker 修改镜像容器的时区
Docker 修改时区
出现场景
Mysql时间慢8小时 ,日志打印显示的时间慢8小时,数据库时间,nginx时间等等。。
出现原因
在 Docker Hub 中的官方镜像中,时区是使用了世界标准时间(UTC)。因为在中国使用,所以需要把时区改成东八区的。
解决方法
1. 修改运行容器时区(不能删除,不用dockerfile情况)
9a785c29ed24
为容器的CONTAINER ID
首先进入正在运行的容器
1 | docker exec -it 9a785c29ed24 /bin/bash |
复制软连接文件
1 | cp /usr/share/zoneinfo/PRC /etc/localtime |
查看时区是否已经更改
1 | date |
时间与宿主机一样,就可以退出,并重启容器了
1 | docker restart 9a785c29ed24 |
若此方法不行,就先通过
tzselect
设置选定Hong Kong时区
依次选 4) Asia > 13) Hong Kong > 1) Yes
2.随意操作情况
dockerfile中设置时区
Dockerfile中加入以下代码
1 | ENV TZ=Asia/Shanghai |
创建容器时带上参数设置
在创建命令中加上 -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime
复制宿主机到容器
1 | docker cp /etc/localtime [容器ID或者NAME]:/etc/localtime |