方法:1、利用「docker run -name
-v 」指令共享主機的localtime;2、利用「docker cp /etc/localtime:容器ID/etc/localtime」指令複製主機的localtime。
本教學操作環境:linux7.3系統、docker-1.13.1版、Dell G3電腦。
必須統一兩者的時區。
共享主機的localtime (方法一)
#建立容器的時候指定啟動參數,掛載localtime檔案到容器內 ,確保兩者所採用的時區是一致的。
docker run --name <name> -v /etc/localtime:/etc/localtime:ro ....
複製主機的localtime (方法二)
docker cp /etc/localtime:【容器ID或者NAME】/etc/localtime
完成後,再透過date指令進行檢視目前時間。
但是,在容器中執行的程式的時間不一定能更新過來,例如在容器中運行的MySQL服務,在更新時間後,透過sql查看MySQL的時間
select now() from dual;
可以發現,時間並沒有改過來。
這時候必須要重新啟動mysql服務或重新啟動Docker容器,mysql才能讀取到更改過後的時間。
建立自訂的dockerfile (方法三)
#建立dockerfile文件,其實沒有什麼內容,就是自訂了該映像的時間格式及時區。
FROM redis FROM tomcat ENV CATALINA_HOME /usr/local/tomcat #设置时区 RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo 'Asia/Shanghai' >/etc/timezone \
儲存後,利用docker build指令產生映像檔使用即可。
推薦學習:《docker影片教學》
以上是docker中容器時間和宿主機時間不同步怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!