Docker

Docker 無法更改時區

  • March 1, 2019

為什麼我不能將時區更改為 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

引用自:https://unix.stackexchange.com/questions/503739