我有docker在Linode服务器上运行。有时,我发现dockers的时间不合适。目前,我已更改每个docker中的运行脚本以包含以下代码行。
yum install -y ntp
service ntpd stop
ntpdate pool.ntp.org
然而,理想情况下,我想做的是docker应该与主机同步时间。有办法做到这一点吗?
此答案的来源是对答案的评论:docker容器会自动与主机同步时间吗?
看了答案后,我意识到docker容器上不可能发生时钟漂移。Docker使用与主机相同的时钟,docker无法更改它。这意味着在docker内部做ntpdate
是行不通的。
正确的做法是使用ntpdate
更新主机时间
就同步时区而言,-v /etc/localtime:/etc/localtime: ro
有效。
您可以将本地文件(/etc/timezone和 /etc/localtime)作为卷添加到Docker容器中。
使用以下行更新您的docker-comment. yml
。
volumes:
- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"
现在容器时间与主机上的相同。
这将重置docker服务器中的时间:
docker run --rm --privileged alpine hwclock -s
下次创建容器时,时钟应该是正确的。
来源:https://github.com/docker/for-mac/issues/2076#issuecomment-353749995