解決docker中mysql時間與系統時間不一致問題

最近在Docker中裝mysql時,發現數據庫時間與系統時間相差8個小時。

linux服務器時間:

進入mysql,輸入date如下

發現兩者時區不同。因為mysql容器是在docker中安裝的,所以mysql的時間不對應該是宿主docker導致的。

查詢資料發現,docker的默認時區是0區,其實這會對安裝的容器造成不少麻煩,比如執行日志的記錄不準確等。

有如下兩種方式解決:

方法一:復制主機的localtime

docker cp /etc/localtime [容器ID或者NAME]:/etc/localtime

註意:因為時區問題可能上面命令會報下面錯誤

Error response from daemon: Error processing tar file(exit status 1): 

invalid symlink “/usr/share/zoneinfo/UCT” -> “../usr/share/zoneinfo/Asia/Shanghai”

查看這個文件

發現這個文件引用瞭一個地址

解決方案:切換命令

docker cp /usr/share/zoneinfo/Asia/Shanghai[容器ID或者NAME]:/etc/localtime

然後重啟容器

docker  restart [容器ID或者NAME]

方法二:共享主機的localtime

創建容器的時候指定啟動參數,掛載localtime文件到容器內

docker run –name -v /etc/localtime 容器id:/etc/localtime:ro ….

兩者時區不一致的問題就解決瞭。

到此這篇關於docker中mysql時間與系統時間不一致問題的文章就介紹到這瞭,更多相關docker時間不一致內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: