Docker 容器时间如何同步宿主机

·  阅读 2092

问题

容器时间与北京时间相差8个小时

原因

宿主机设置了时区,而Docker容器并没有设置,导致两者相差8小时

解决方案:

  1. docker run 添加时间参数
-v /etc/localtime:/etc/localtime
复制代码

例如:

docker run -p 3306:3306 --name mysql -v /etc/localtime:/etc/localtime
复制代码
  1. Dockerfile
#添加时区环境变量,亚洲,上海
ENV TimeZone=Asia/Shanghai
#使用软连接,并且将时区配置覆盖/etc/timezone
RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone
复制代码
  1. docker-compose
#第一种方式(推荐):
environment:
  TZ: Asia/Shanghai
  
#第二种方式:
environment:
  SET_CONTAINER_TIMEZONE=true
  CONTAINER_TIMEZONE=Asia/Shanghai

#第三种方式:
volumes:
  - /etc/timezone:/etc/timezone
  - /etc/localtime:/etc/localtime
复制代码
  1. 宿主机直接执行命令给某个容器同步时间
docker cp -L /usr/share/zoneinfo/Asia/Shanghai  【容器名】:/etc/localtime
复制代码
分类:
阅读
标签:
分类:
阅读
标签:
收藏成功!
已添加到「」, 点击更改