Docker 老手也會犯的新手錯誤- Container 時區

最近建立容器時,發生一個有趣的狀況- 有一個網站服務使用伺服器端的時間做為戳記,但系統返回的時間與正確時間差了8小時。
這很明顯就是時區設定問題導致,UTC 與 UTC+8。

我們先看一個常規的容器啟動方式,再讓系統印出時間

PS C:\Users\User> docker run -it --name ubuntu-container ubuntu
root@1a795a43856e:/# date
Thu May 18 14:45:27 UTC 2023
root@1a795a43856e:/#

有留意到時間是 UTC 嘛! 這就是問題的主因。我們這次試著帶入時區的環境變數重啟這個容器:

PS C:\Users\User> docker run -it --name ubuntu-container -e TZ=Asia/Taipei ubuntu
root@05445a253cd1:/# date
Thu May 18 14:50:29 Asia 2023
root@05445a253cd1:/#

時間突然就變成 Asia 。

因為Host端我是使用 Asia/Taipei ,所以沒有時差問題,但如果你使用的是 Google Cloud Platform, GCP 的話,特別又是國外的 Cloud Engine 就會出現時差8小時的問題。
特別紀錄一下,免得下次雲端化又會忘記這個小細節。

發佈留言