方法:1、利用“docker run -name-v ”命令共享主機的localtime;2、利用“docker cp /etc/localtime:容器ID/etc/localtime”命令復(fù)制主機的localtime。
本教程操作環(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? ??&&?echo?'Asia/Shanghai'?>/etc/timezone?
保存后,利用docker?build命令生成鏡像使用即可。
推薦學(xué)習(xí):《docker視頻教程》
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END
喜歡就支持一下吧
相關(guān)推薦