Docker时区timezone问题

本文详细介绍了在Docker容器中设置时间和时区的方法,包括使用docker-compose、Dockerfile及容器启动时的直接设置。提供了如何同步宿主机时间、通过环境变量设置时区以及在不同Linux发行版下修改时区的具体命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
dockerfile进行镜像设置生成
RUN echo "Asia/Shanghai" > /etc/timezone
RUN dpkg-reconfigure -f noninteractive tzdata

# 已上是 Ubuntu 修改时区的命令。
# Docker 默认使用 Ubuntu系统。
# 如果你的自定义镜像使用的是其他发行版,那么这里的命令也要改变
容器启动时直接设置
docker run -v /etc/localtime:/etc/localtime <IMAGE:TAG>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值