Docker
Docker 無法更改時區
為什麼我不能將時區更改為 CET 或 Europe/Berlin
[root@server.de ~]# docker run -ti --rm debian:stretch bash root@b65a4b63c152:/# cat /etc/timezone Etc/UTC root@b65a4b63c152:/# echo 'Europe/Berlin' > /etc/timezone root@b65a4b63c152:/# cat /etc/timezone Europe/Berlin root@b65a4b63c152:/# dpkg-reconfigure -f noninteractive tzdata Current default time zone: 'Etc/UTC' Local time is now: Fri Mar 1 10:31:46 UTC 2019. Universal Time is now: Fri Mar 1 10:31:46 UTC 2019. root@b65a4b63c152:/# ls -l /usr/share/zoneinfo/Europe/Berlin -rw-r--r-- 1 root root 2335 Dec 31 09:43 /usr/share/zoneinfo/Europe/Berlin root@b65a4b63c152:/# echo $TZ root@b65a4b63c152:/# date '+%Z %z' UTC +0000 root@b65a4b63c152:/# cat /etc/timezone Etc/UTC
容器不是虛擬機,它是在自己的文件系統和網路泡泡中執行的程序。一些全域系統設置是從主機繼承的。要更改容器中執行的程序的時區,只需設置 TZ 環境變數。這是擁有自己的時區的標準 Unix 方式(在可能在不同時區的使用者之間共享的系統上)。
>> docker run -it --rm debian bash root@719d5f1d0999:/# date Fri Mar 1 10:54:56 UTC 2019 root@719d5f1d0999:/# export TZ='CET' root@719d5f1d0999:/# date Fri Mar 1 11:55:19 CET 2019