docker学习16-Docker 容器设置时区
前言
最近遇到一个问题,在本机部署操作时,获取本机当前时间存到mysql数据库,时间是当前北京时间没问题。
但是用Docker 容器部署项目,发现时间少了8个小时,于是想到是docker容器的内部时区问题。
修改docker 容器内部时区
docker 容器一般是debian系统,默认是UTC标准时间
# 1.先进容器内部
docker exec -it 容器名 bash
# 2.设置上海时间
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
或者先删除localtime 再给软链接
rm /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
构建镜像设置时区
我们也可以在写Dockerfile 文件构建镜像的时候,设置好时区
# 设定时区
ENV TZ=Asia/Shanghai
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
或者启动容器的时候,将宿主机与容器的时间进行挂载
-v /etc/localtime:/etc/localtime