Docker 解決容器時(shí)間與主機(jī)時(shí)間不一致的問(wèn)題三種解決方案
Docker容器時(shí)間與主機(jī)時(shí)間不一致
通過(guò)date命令查看時(shí)間
查看主機(jī)時(shí)間
[root@localhost ~]# date 2016年 07月 27日 星期三 22:42:44 CST
查看容器時(shí)間
root@b43340ecf5ef:/#date Wed Jul 27 14:43:31 UTC 2016
可以發(fā)現(xiàn),他們相隔了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í)。(bluer: 所以沒(méi)有設(shè)置過(guò)的容器, 一般跟宿主機(jī)時(shí)間相差8h)
所以,必須統(tǒng)一兩者的時(shí)區(qū)。
共享主機(jī)的localtime (方法一)
創(chuàng)建容器的時(shí)候指定啟動(dòng)參數(shù),掛載localtime文件到容器內(nèi) ,保證兩者所采用的時(shí)區(qū)是一致的。
docker run --name <name> -v /etc/localtime:/etc/localtime:ro ....
復(fù)制主機(jī)的localtime (方法二)
docker cp /etc/localtime:【容器ID或者NAME】/etc/localtime
在完成后,再通過(guò)date命令進(jìn)行查看當(dāng)前時(shí)間。
但是,在容器中運(yùn)行的程序的時(shí)間不一定能更新過(guò)來(lái),比如在容器運(yùn)行的MySQL服務(wù),在更新時(shí)間后,通過(guò)sql查看MySQL的時(shí)間
select now() from dual;
可以發(fā)現(xiàn),時(shí)間并沒(méi)有更改過(guò)來(lái)。
這時(shí)候必須要重啟mysql服務(wù)或者重啟Docker容器,mysql才能讀取到更改過(guò)后的時(shí)間。
創(chuàng)建自定義的dockerfile (方法三)
創(chuàng)建dockerfile文件,其實(shí)沒(méi)有什么內(nèi)容,就是自定義了該鏡像的時(shí)間格式及時(shí)區(qū)。
FROM redis FROM tomcat ENV CATALINA_HOME /usr/local/tomcat #設(shè)置時(shí)區(qū) RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo 'Asia/Shanghai' >/etc/timezone \
保存后,利用docker build命令生成鏡像使用即可。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Windows Server 2016 安裝 Docker的過(guò)程及遇到問(wèn)題
若要在 Windows Server 上安裝 Docker,可以使用由 Microsoft 發(fā)布的 OneGet 提供程序 PowerShell 模塊,接下來(lái)通過(guò)本文給大家介紹Windows Server 2016 安裝 Docker的過(guò)程及遇到問(wèn)題,一起看看吧2021-09-09
Docker?Compose與Docker鏡像倉(cāng)庫(kù)詳解
Docker?Compose可以基于Compose文件幫我們快速的部署分布式應(yīng)用,而無(wú)需手動(dòng)一個(gè)個(gè)創(chuàng)建和運(yùn)行容器,這篇文章主要介紹了Docker?Compose與Docker鏡像倉(cāng)庫(kù),需要的朋友可以參考下2023-03-03
解決Docker Desktop運(yùn)行一直轉(zhuǎn)問(wèn)題
遇到Docker啟動(dòng)報(bào)錯(cuò)、Docker Desktop運(yùn)行不正常等問(wèn)題,常見(jiàn)解決方案包括以管理員身份運(yùn)行CMD,重啟Docker服務(wù),恢復(fù)Docker Desktop出廠設(shè)置,啟用Windows功能等,最終通過(guò)運(yùn)行cmd命令"netsh winsock reset"解決問(wèn)題,但需注意此操作可能導(dǎo)致Docker鏡像丟失2024-09-09
Docker 倉(cāng)庫(kù)管理和Docker Dockerfile詳解
倉(cāng)庫(kù)(Repository)是集中存放鏡像的地方,以下介紹一下 Docker Hub,當(dāng)然不止 docker hub,只是遠(yuǎn)程的服務(wù)商不一樣,操作都是一樣的,對(duì)Docker 倉(cāng)庫(kù)管理相關(guān)知識(shí)感興趣的朋友一起看看吧2023-11-11
docker中mysql初始化及啟動(dòng)失敗問(wèn)題解決方案
這篇文章主要介紹了docker中mysql初始化及啟動(dòng)失敗問(wèn)題解決方案的相關(guān)資料,需要的朋友可以參考下2016-10-10
docker安裝Jenkins執(zhí)行構(gòu)建jar運(yùn)行方式
這篇文章主要介紹了docker安裝Jenkins執(zhí)行構(gòu)建jar運(yùn)行方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
使用dockercompose搭建springboot-mysql-nginx應(yīng)用
這篇文章主要介紹了使用dockercompose搭建springboot-mysql-nginx應(yīng)用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03
Deepin使用docker安裝mysql數(shù)據(jù)庫(kù)過(guò)程詳解
這篇文章主要介紹了Deepin使用docker安裝mysql數(shù)據(jù)庫(kù)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06

