Docker容器時區調整操作

2022-09-22 02:21:11 字數 1842 閱讀 3252

如何檢查docker容器時區是否與宿主機一致?

1、進入宿主機, 執行以下命令:

# 檢視宿主機時間

[root@localhost ~]# date

2023年 06月 27日 星期三 22:42:44 cst

2、進入到容器中,執行以下命令

# 檢視容器時間

root@lksjoid909090:/#date

wed jul 27 14:43:31 utc 2018

cst應該是指(china shanghai time,東八區時間)

utc應該是指(coordinated universal time,標準時間)

可以發現,他們相隔了8小時, 宿主機與docker容器時區不一致。

解決方案:

1、【映象未生產前】基礎映象 在 dockerfile 中設定時區:

env tz=asia/shanghai

run ln -snf /usr/share/zoneinfo/$tz /etc/localtime && echo $tz > /etc/timezone

2、【映象生成後 && 容器未建立】 建立並啟動容器時:

# 共享主機時間

docker run --name -v /etc/localtime:/etc/localtime:ro ...

3、【映象生成後 && 容器啟動】 容器外,宿主機中修改:

docker cp /etc/localtime [容器id或者name]:/etc/localtime

4、【映象生成後 && 容器啟動】 容器中

apk add tzdata

ln -sf /usr/share/zoneinfo/asia/shanghai /etc/localtime echo "asia/shanghai" > /etc/timezone

補充知識:docker命令報錯error during connect: get open//.

執行docker ps報錯

error during connect: get http://%2f%2f.%2fpipe%2fdocker_engine/v1.36/containers/json: open //./pipe/docker_engine: the system cannot find the file specified. in the default daemon configuration on windows, the docker client must be run elevated to connect. this error may also indicate that th程式設計客棧e docker daemon is not running.

報錯資訊如下:

解決方法

1.執行命令:

docker-machine env default

2.方法一:

將顯示的命令複製出來進行執行

執行完後,再執行docker ps等命令,即可正常使用

3. 方法二:

只將最後一句

rem @wcrfxcyfor /f 「tokens=*」 %i in (『docker-machine env default') do @%i

命令去掉rem進行執行,即執行

@for程式設計客棧 /f "tokens=*" %i in ('docker-machine env def程式設計客棧ault') do @%i

執行完後,docker命令就可以正常使用了,每新開乙個cmd視窗都需要先設定環境變數。

注意:在bat指令碼中使用方法二時,直接將for語句放入bat指令碼中執行會報錯,將命令中的%i改為 %%i。

本文標題: docker容器時區調整操作

本文位址:

docker容器時區問題

軟體開發經常遇到時區問題,國際化應用要處理的時區更為複雜一些,本文講述docker容器時區設定。當服務容器返回的時間都是少8小時,說明就是容器的時區設定出現問題。一般解決此類問題要麼設定一下容器的時區,要麼就是讓容器繼承宿主主機的時區,顯然繼承宿主主機的時區更好 可能說的有些絕對了 我們可以通過調整...

docker容器改變時區

預設情況下的docker容器啟動之後,系統時間是utc時間,這導致和我們的北京時間相差8小時,會引出很多問題。有一些容器是和專案一起構建的,我們可以在構建的時候,將系統時區修改為asia shanghai。如下所示,我們在定義dockerfile的時候,可以直接加上這段指令 run ln sf us...

Docker容器的時區設定

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