我试图运行一个与我的Docker主机具有相同时区的Docker容器。主机时区是CEST。
当我跑步时:
$ 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,它就会像预期的那样工作:
$ docker run -e TZ=Europe/Paris debian:buster date
Thu Apr 16 11:04:22 CEST 2020这是窃听器还是我漏掉了什么?
发布于 2020-04-17 14:17:39
研究表明,CEST并不是TZ环境变量的一个有效值。当当前日期是夏季时,CEST只是CET的一个可显示版本。
实际上,如果我将TZ设置为一个明显无效的值,它将提供:
$ TZ=FOO date
Fri Apr 17 14:07:56 FOO 2020还请注意,它与码头无关。
参考资料:
发布于 2020-04-16 11:35:27
默认情况下,时区被设置,您需要手动更改它。
有一些选择:
在Dockerfile中设置它:
ENV TZ=America/Los_Angeles
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone使用卷与主机同步:
volumes:
- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"或
docker run -v /etc/timezone:/etc/timezone:ro最后,手动设置它,但是如果重新启动容器,则会丢失配置:
docker run -e TZ=America/New_York ubuntu datehttps://serverfault.com/questions/1012542
复制相似问题