解決docker容器與宿主機相差8小時的問題
使用docker-compose部署時,在輸出的日志以及相關事件校驗及輸出時,導致事件與現(xiàn)實相差8小時。
排查問題:
1.查看宿主機時間:
# 查看時間 date Wed Sep 29 11:12:44 CST 2021 # 查看時區(qū) date -R Wed, 29 Sep 2021 11:13:34 +0800
2.進入容器查看時間
# 查看所有容器 docker ps -a # 進入容器 docker eec -it [容器ID] /bin/bash # 查看時間 date
此時看到的宿主機時間與docker容器的時間一樣,此時各種百度,終于知道是timezone的問題
linux時間:
![]()
容器時間:
![]()
原因:宿主機設置了時區(qū),而Docker容器并沒有設置,導致兩者相差8小時
CST應該是指(China Shanghai Time,東八區(qū)時間)
UTC應該是指(Coordinated Universal Time,標準時間)
所以,這2個時間實際上應該相差8個小時
所以,必須統(tǒng)一兩者的時區(qū)
解決方案:
1.docker-compose配置卷掛載
volumes:
- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
2.Dockerfile運行命令以及輸出對應時區(qū)到timezone中
RUN echo "Asia/shanghai" > /etc/timezone RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
3.刪除容器,并重新運行
#刪除 docker rm [容器ID] # 啟動 docker-compose -f [文件名] up -d
總結:導致時差查2小時是容器中的/etc/timezone的問題,對此進行設置相應的時區(qū)即可。
到此這篇關于docker容器與宿主機相差8小時的文章就介紹到這了,更多相關docker容器與宿主機內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
docker-compose配置并部署redis服務的實現(xiàn)
本文主要介紹了docker-compose配置并部署redis服務的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-04-04

