前言

最近遇到一个问题,在本机部署操作时,获取本机当前时间存到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
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐