Docker时区timezone问题

原文: Docker时区timezone问题

Linux时间类型

  • 在Unix类的机器下的/usr/share/zoneinfo/文件内为所有代码调用的ZONEINFO的数据位置,想查看设置哪个时区时,直接去里边看名字即可。
    time_zone时区

docker时间、时区问题

docker容器内默认为utc时间

docker-compose启动时的设置:

设置容器内为宿主机时间:

volumes:
  - /etc/localtime:/etc/localtime:ro
  - /etc/timezone:/etc/timezone:ro   # 这个只在Linux上有
  # “ro”的意思是只读(read-only)模式,可以保证其挂载卷不被 Docker 容器内部文件系统配置所覆盖

# 通过环境变量设置时区    
environment:
  - TZ=Asia/Shanghai   # 设置容器时区为CST

  
  
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

dockerfile进行镜像设置生成

RUN echo "Asia/Shanghai" > /etc/timezone
RUN dpkg-reconfigure -f noninteractive tzdata

# 已上是 Ubuntu 修改时区的命令。
# Docker 默认使用 Ubuntu系统。
# 如果你的自定义镜像使用的是其他发行版,那么这里的命令也要改变

  
  
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

容器启动时直接设置

docker run -v /etc/localtime:/etc/localtime <IMAGE:TAG>

  
  
 
 
  • 1

猜你喜欢

转载自www.cnblogs.com/lonelyxmas/p/12348302.html