解決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!
推薦閱讀:
- 在Docker容器中部署Django的時區問題
- Docker Alpine鏡像時區問題完美解決方案
- Docker Compose搭建WordPress服務實現詳解
- Centos8.3、docker部署springboot項目實戰案例分析
- docker-compose啟動mysql雙機熱備互為主從的方法實現