解決Docker容器時區不一致的問題


查看linux系統時區和docker容器時區

date -R                          //查看linux主機時間和時區
date exec [container] date -R    // 查看容器時間和時區

2者的時間差了8個小時

 

解決方案

1、利用Dockerfile創建鏡像時。在Dockerfile中加入

ENV TIME_ZONE=Asia/Shanghai 
RUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone

2、容器創建時。加入時區掛載選項:-v /etc/localtime:/etc/localtime。實例:

docker run -d -p 6379:6379 -v /etc/localtime:/etc/localtime --name test-redis redis

 3、容器已啟動時。

docker exec -it container /bin/bash // 進入交互模式,container為容器ID或名稱,下同
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
docker restart container // 重啟容器
docker exec container date -R // 查看時區

 

以上均親測試,良心保證,另外網上有搜到docker cp /etc/localtime [container]:/etc/localtime方法,但實際驗證沒成功,不知為何。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM