After building a Dockerfile, I run it. I figure out that there is something wrong with local time.
So I start to install ntpdate but it doesn't work at all. The clock of docker must be asyncronized with
host clock, it can not be changed by itself. The file /etc/localtime is used for setting the system clock
and once it is changed, the time in system will be changed immediately.
Actually, /etc/localtime is a symlink to /usr/share/zoneinfo/localtime in some Linux/Unix systems.
We can can change /etc/lcoaltime into any one of these timezones as following:
root@ubuntu:/usr/share/zoneinfo# ls
Africa Canada EST GMT0 Iran MET Poland ROK WET
America CET EST5EDT GMT-0 iso3166.tab Mexico Portugal Singapore W-SU
Antarctica Chile Etc GMT+0 Israel MST posix SystemV zone.tab
Arctic CST6CDT Europe Greenwich Jamaica MST7MDT posixrules Turkey Zulu
Asia Cuba Factory Hongkong Japan Navajo PRC UCT
Atlantic EET GB HST Kwajalein NZ PST8PDT Universal
Australia Egypt GB-Eire Iceland Libya NZ-CHAT right US
Brazil Eire GMT Indian localtime Pacific ROC UTC
Solution:
root@6fc515dfb754:~# ntpdate us.pool.ntp.org 3 Nov 09:30:06 ntpdate[966]: Can't adjust the time of day: Operation not permitted cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime