首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头集装箱时间比TZ=CEST晚2小时

码头集装箱时间比TZ=CEST晚2小时
EN

Server Fault用户
提问于 2020-04-16 09:09:29
回答 2查看 9.3K关注 0票数 4

我试图运行一个与我的Docker主机具有相同时区的Docker容器。主机时区是CEST

当我跑步时:

代码语言:javascript
复制
$ date
Thu Apr 16 11:04:11 CEST 2020
$ docker run -e TZ=CEST debian:buster date
Thu Apr 16 09:04:14 CEST 2020

容器在主机后面2小时。

另一方面,如果我设置了TZ=Europe/Paris,它就会像预期的那样工作:

代码语言:javascript
复制
$ docker run -e TZ=Europe/Paris debian:buster date
Thu Apr 16 11:04:22 CEST 2020

这是窃听器还是我漏掉了什么?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2020-04-17 14:17:39

研究表明,CEST并不是TZ环境变量的一个有效值。当当前日期是夏季时,CEST只是CET的一个可显示版本。

实际上,如果我将TZ设置为一个明显无效的值,它将提供:

代码语言:javascript
复制
$ TZ=FOO date
Fri Apr 17 14:07:56 FOO 2020

还请注意,它与码头无关。

参考资料:

票数 1
EN

Server Fault用户

发布于 2020-04-16 11:35:27

默认情况下,时区被设置,您需要手动更改它。

有一些选择:

在Dockerfile中设置它:

代码语言:javascript
复制
ENV TZ=America/Los_Angeles
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

使用卷与主机同步:

代码语言:javascript
复制
volumes:
- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"

代码语言:javascript
复制
docker run -v /etc/timezone:/etc/timezone:ro

最后,手动设置它,但是如果重新启动容器,则会丢失配置:

代码语言:javascript
复制
docker run -e TZ=America/New_York ubuntu date
票数 4
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1012542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档