docker時區設定

2021-09-12 12:43:23 字數 718 閱讀 8049

前幾天用docker部署mysql,在web服務將資料寫入mysql時,發現時間相差了8個小時,隨後在網上查詢解決辦法。

若用docker run 命令來執行docker的話,可以直接通過-v,將宿主機的時間與本地時間繫結到容器中,這樣時間就會跟宿主機一樣,例子:

docker run -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -ti nginx bash

然後執行date,檢視docker的時間;

也可以通過定義dockerfile的env,設定tz為asia/shanghai,**塊如下:

run apk add --no-cache tzdata

env tz=asia/shanghai

另外docker-compose.yml檔案來定義的話,跟dockerfile是一樣,在environment新增,**塊如下:

environment:

tz: asia/shanghai

其中tzdata這個依賴是必須的,沒有這個,即使設定了env tz=asia/shanghai,有些映象的時間也不會變為北京時間,我用golang官方的映象來構建時就遇到這個問題。據了解是因為有些容器裡沒有/usr/share/zoneinfo目錄。

參考:

Docker容器的時區設定

docker作為一款優秀的開源容器管理工具,能夠幫助開發者一鍵式地在各個平台上執行自己的應用而無需考慮環境相容問題,已經成為目前主流的應用部署方案。在使用docker容器時,可能碰到的乙個問題是時區的設定,因為docker容器內預設的時區是utc,這一點可以通過date命令來驗證。分別在宿主機和do...

在 Docker 中設定時區

docker hub 中的官方映象,一般都預設設定為 utc 時間。而我們位於東八區,在啟動容器或構建自己的映象時,往往需要對時區進行設定。根據基礎映象的不同,設定時區的方法也有所區別。由於 debian 映象中已經包含了 tzdata,因此設定時區的方法比較簡單,只需新增環境變數 tz 即可。我們...

docker 時區 Docker修改時區

在使用docker時,其預設時區並非使用者所在時區,需要進行修改。對於單個容器,當前修改有幾種常見方式,比如直接對映宿主機時區到容器內,而本文介紹的為使用dockerfile來直接修改映象時區。此處僅以常見幾個基礎容器為例來介紹。from alpine latest 安裝tzdata run apk...