您好,登錄后才能下訂單哦!
怎么樣調整Docker容器的時區?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
如何檢查Docker容器時區是否與宿主機一致?
1、進入宿主機, 執行以下命令:
# 查看宿主機時間
[root@localhost ~]# date
2018年 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 <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 http://2F2F.2Fpipe2Fdocker_engine/v1.36/containers/json: 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 the docker daemon is not running.
報錯信息如下:
解決方法
1.執行命令:
docker-machine env default
2.方法一:
將顯示的命令復制出來進行執行
執行完后,再執行docker ps等命令,即可正常使用
3. 方法二:
只將最后一句 REM @FOR /f “tokens=*” %i IN (‘docker-machine env default') DO @%i 命令去掉REM進行執行,即執行@FOR /f "tokens=*" %i IN ('docker-machine env default') DO @%i
執行完后,docker命令就可以正常使用了,每新開一個cmd窗口都需要先設置環境變量。
注意:在bat腳本中使用方法二時,直接將FOR語句放入bat腳本中運行會報錯,將命令中的%i改為 %%i。
關于怎么樣調整Docker容器的時區問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。