docker中容器時間和宿主機時間不同步怎么辦

方法:1、利用“docker run -name-v ”命令共享主機的localtime;2、利用“docker cp /etc/localtime:容器ID/etc/localtime”命令復(fù)制主機的localtime。

docker中容器時間和宿主機時間不同步怎么辦

本教程操作環(huán)境:linux7.3系統(tǒng)、docker-1.13.1版、Dell G3電腦。

docker中容器時間和宿主機時間不同步怎么辦

必須統(tǒng)一兩者的時區(qū)。

共享主機的localtime??(方法一)

創(chuàng)建容器的時候指定啟動參數(shù),掛載localtime文件到容器內(nèi)??,保證兩者所采用的時區(qū)是一致的。

docker?run?--name?<name>?-v?/etc/localtime:/etc/localtime:ro?....</name>

復(fù)制主機的localtime??(方法二)

docker?cp?/etc/localtime:【容器ID或者NAME】/etc/localtime

在完成后,再通過date命令進(jìn)行查看當(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? ??&amp;&amp;?echo?'Asia/Shanghai'?&gt;/etc/timezone?

保存后,利用docker?build命令生成鏡像使用即可。

推薦學(xué)習(xí):《docker視頻教程

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊15 分享