如何調整 Ubuntu 系統時區 (含 Docker)

目錄

最近透過 docker 編譯程式後,發現時間對不上,原來是時區沒有設定的問題。 本來想說時區設定應該滿容易的,沒想到因為 docker 設定時不會互動,所以用一般在 Ubuntu 上使用 timedatectl 設定的方法就會有問題。 因此記錄一下在一般伺服器中以及 docker 中為 Ubuntu 系統設定時區的方法。

在伺服器上調整時區

可以使用 timedatectl 來查看目前的時區設定,並且透過 timedatectl list-timezones 列出所有可用的時區。 透過下列指令,可以將時區設定成 Asia/Taipei

sudo timedatectl set-timezone Asia/Taipei
sudo dpkg-reconfigure --frontend noninteractive tzdata

在 docker 中為調整時區

docker 中調整時區需要透過 tzdata 來設定,並且需要設定 DEBIAN_FRONTEND 變數避免互動設定。 系統及部分程式會透過 /etc/localtime 來判斷時區,tzdata 會透過讀取 /etc/timezone 來設定時區。因此同時修改這兩個地方避免衝突。

export TZ=Asia/Taipei
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime
echo $TZ > /etc/timezone
DEBIAN_FRONTEND="noninteractive" apt-get install -y tzdata
標籤 :
分享 :