docker的容器会自动同步主机的时间?
给我已经正确地更改了docker容器的时区。 我是否需要在Docker容器中安装一个NTP服务器来定期同步时间,或者容器将同步它主机的时间?
如果您在OSX上运行boot2docker,请参阅此问题: https : //github.com/boot2docker/boot2docker/issues/290
时间同步成为一个问题,因为boot2docker主机在你的操作系统睡着时有时间漂移。 与您的docker集装箱时间同步无法通过运行您的容器与-v /etc/localtime:/etc/localtime:ro
相反,现在,你必须定期在OSX上运行这个:
/usr/local/bin/boot2docker ssh sudo ntpclient -s -h pool.ntp.org
更新为Kitematic的用户
如果您正在运行Kitematic ,现在是在OSX上启动并运行Docker的build议机制,则必须定期运行以下命令:
docker-machine ssh default 'sudo ntpclient -s -h pool.ntp.org'
或者,对于较旧版本的Docker
docker-machine ssh dev 'sudo ntpclient -s -h pool.ntp.org'
更新OSX的新本机Docker的用户
新的Docker Beta可以消除VirtualBox和Docker Machine。 docker工人的最新版本(目前是1.12.1-beta25(build:11807))似乎有能力检测何时出现时间不连续性,并进行相应的调整。 因此,这应该不再是一个问题…万岁!
https://github.com/sameersbn/docker-gitlab/issues/77
看到sameersbn的答案。
option 1: -v /etc/localtime:/etc/localtime:ro option 2: -e "TZ=Asia/Shanghai"
最简单的解决scheme似乎是使用-v /etc/localtime:/etc/localtime:ro
选项运行您的容器。 从而:
#run without tz info: docker run --rm -t -i ubuntu date Wed Apr 2 18:40:07 UTC 2014 # run with tz info: docker run --rm -t -i -v /etc/localtime:/etc/localtime:ro ubuntu date Wed Apr 2 11:40:29 PDT 2014
在Docker for Mac OS X Beta上,我经历了基于Alpine Linux的虚拟机的显着漂移。 从Alpine Linux FAQ中,您可以使用以下命令同步VM的时钟。
ntpd -d -q -n -p pool.ntp.org
但是,访问虚拟机上的terminal是另一个问题,如果使用屏幕命令,则可以完成此操作。
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
该path是一个符号链接,在我的系统上指向/dev/ttys003
。
一旦你进入,请注意, moby login
是根本没有密码。 完成后,CTRL-A,D将与屏幕会话断开连接。
注:这用于在Docker for Mac Trouble Shooting中logging,但似乎已被删除。 在Dockercon 2016期间,我非常幸运地看到了它。看起来Docker正试图将虚拟机完全抽象出来,这就解释了为什么它不再被logging下来。