工作经验分享

同步 Docker 容器时区:简单粗暴的 /etc/localtime 挂载方案

还在为 Docker 容器中的时区问题烦恼吗? 想要容器的时区与宿主机保持一致,但又不想深入研究复杂的配置? 试试最简单粗暴的 /etc/localtime 挂载方法吧!

原理:

直接将宿主机的 /etc/localtime 文件挂载到容器内的 /etc/localtime 位置。这样,容器就能使用与宿主机相同的时区设置。 ro 标志保证容器不会修改宿主机的时区文件,确保安全性。

优点:

缺点:

操作步骤:

  1. 确认宿主机时区: 使用 timedatectldate 命令查看宿主机的时区是否正确。
  2. 修改 docker-compose.yml 将以下代码添加到你的服务定义中:

    version: "3.9"services:  your-service:    image: your-image    volumes:      - /etc/localtime:/etc/localtime:ro  # ro 代表只读    # ... 其他配置
  3. 重启容器: 运行 docker-compose down && docker-compose up -d 重新构建并启动容器。

示例:

version: "3.9"services:  web:    image: nginx:latest    volumes:      - /etc/localtime:/etc/localtime:ro    ports:      - "80:80"

解释:

这种方法简单直接,能够快速实现 Docker 容器与宿主机时区的同步。 赶快试一下,告别时区困扰吧!

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »