我正在为我从 docker-hub 提取的开发堆栈运行 docker 容器,该图像是为与我的应用程序应该部署的位置不同的时区创建的。
如何更改 docker 容器中的时区?
我试图通过运行更改容器内的时区配置
echo "Africa/Lusaka" > /etc/timezone
并重新启动容器,但我仍然得到相同的时区。
原文由 mekbib.awoke 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在为我从 docker-hub 提取的开发堆栈运行 docker 容器,该图像是为与我的应用程序应该部署的位置不同的时区创建的。
如何更改 docker 容器中的时区?
我试图通过运行更改容器内的时区配置
echo "Africa/Lusaka" > /etc/timezone
并重新启动容器,但我仍然得到相同的时区。
原文由 mekbib.awoke 发布,翻译遵循 CC BY-SA 4.0 许可协议
有几种方法可以做到这一点。
environment: - TZ=Asia/Singapore - DEBIAN_FRONTEND=noninteractive
volumes: - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro
我个人更喜欢使用第二种方法,这样我所有的容器都会和我的主机有相同的时间配置
原文由 rugby2312 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答2.5k 阅读✓ 已解决
2 回答842 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答1.4k 阅读
2 回答1.3k 阅读
1 回答1.6k 阅读
1.1k 阅读
您可以在运行阶段按照@LinPy 的建议覆盖,但如果您想在 Dockerfile 中进行设置,您可以使用 ENV 进行设置,因为 tzdata 已经存在于您的基础映像中。
建造
docker build -t dbtest .
跑
docker run -it dbtest -c "date"
现在您可以通过运行在数据库端进行验证
show timezone;
您将在容器和 Postgres 中看到
Central Africa Time
在 alpine 基础镜像中,环境变量将不起作用。您将需要运行