最近在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時間不一致內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/zitian246/article/details/122220705