Docker – 容器中的时区与主机上的时区不相同

在我所有运行的docker容器中,容器的系统时间设置为UTC,而在我的主机(debian)上是CEST。

为什么不自动同步? 我如何让他们设置合适的时间?

root@v2201510680628925:/home/jacob# docker version Client: Version: 1.11.2 API version: 1.23 Go version: go1.5.4 Git commit: b9f10c9 Built: Wed Jun 1 21:36:47 2016 OS/Arch: linux/amd64 Server: Version: 1.11.2 API version: 1.23 Go version: go1.5.4 Git commit: b9f10c9 Built: Wed Jun 1 21:36:47 2016 OS/Arch: linux/amd64 root@v2201510680628925:/home/jacob# date Wed Aug 2 09:59:20 CEST 2017 root@v2201510680628925:/home/jacob# docker exec -it naos_nginx bash root@0cefa7f7096c:/# date Wed Aug 2 07:59:34 UTC 2017 root@0cefa7f7096c:/# exit exit root@v2201510680628925:/home/jacob# docker exec -it ah_avail bash root@da52e8f3f61f:/usr/src/app# date Wed Aug 2 07:59:59 UTC 2017 root@da52e8f3f61f:/usr/src/app# exit exit root@v2201510680628925:/home/jacob# 

您应该可以使用tzdata在您的容器中设置时区:

 docker run -e TZ=Europe/Amsterdam debian:jessie date 

积分和“为什么容器不与主机同步时间”的进一步说明: docker集装箱时间和时区(不会反映变化)