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