解決docker容器與宿主機(jī)相差8小時(shí)的問(wèn)題
使用docker-compose部署時(shí),在輸出的日志以及相關(guān)事件校驗(yàn)及輸出時(shí),導(dǎo)致事件與現(xiàn)實(shí)相差8小時(shí)。
排查問(wèn)題:
1.查看宿主機(jī)時(shí)間:
# 查看時(shí)間 date Wed Sep 29 11:12:44 CST 2021 # 查看時(shí)區(qū) date -R Wed, 29 Sep 2021 11:13:34 +0800
2.進(jìn)入容器查看時(shí)間
# 查看所有容器 docker ps -a # 進(jìn)入容器 docker eec -it [容器ID] /bin/bash # 查看時(shí)間 date
此時(shí)看到的宿主機(jī)時(shí)間與docker容器的時(shí)間一樣,此時(shí)各種百度,終于知道是timezone的問(wèn)題
linux時(shí)間:
容器時(shí)間:
原因:宿主機(jī)設(shè)置了時(shí)區(qū),而Docker容器并沒(méi)有設(shè)置,導(dǎo)致兩者相差8小時(shí)
CST應(yīng)該是指(China Shanghai Time,東八區(qū)時(shí)間)
UTC應(yīng)該是指(Coordinated Universal Time,標(biāo)準(zhǔn)時(shí)間)
所以,這2個(gè)時(shí)間實(shí)際上應(yīng)該相差8個(gè)小時(shí)
所以,必須統(tǒng)一兩者的時(shí)區(qū)
解決方案:
1.docker-compose配置卷掛載
volumes: - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
2.Dockerfile運(yùn)行命令以及輸出對(duì)應(yīng)時(shí)區(qū)到timezone中
RUN echo "Asia/shanghai" > /etc/timezone RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
3.刪除容器,并重新運(yùn)行
#刪除 docker rm [容器ID] # 啟動(dòng) docker-compose -f [文件名] up -d
總結(jié):導(dǎo)致時(shí)差查2小時(shí)是容器中的/etc/timezone的問(wèn)題,對(duì)此進(jìn)行設(shè)置相應(yīng)的時(shí)區(qū)即可。
到此這篇關(guān)于docker容器與宿主機(jī)相差8小時(shí)的文章就介紹到這了,更多相關(guān)docker容器與宿主機(jī)內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。