解決docker中mysql時間與系統(tǒng)時間不一致問題
最近在Docker中裝mysql時,發(fā)現數據庫時間與系統(tǒng)時間相差8個小時。
linux服務器時間:
進入mysql,輸入date如下
發(fā)現兩者時區(qū)不同。因為mysql容器是在docker中安裝的,所以mysql的時間不對應該是宿主docker導致的。
查詢資料發(fā)現,docker的默認時區(qū)是0區(qū),其實這會對安裝的容器造成不少麻煩,比如執(zhí)行日志的記錄不準確等。
有如下兩種方式解決:
方法一:復制主機的localtime
docker cp /etc/localtime [容器ID或者NAME]:/etc/localtime
注意:因為時區(qū)問題可能上面命令會報下面錯誤
Error response from daemon: Error processing tar file(exit status 1):?
invalid symlink "/usr/share/zoneinfo/UCT" -> "../usr/share/zoneinfo/Asia/Shanghai"
查看這個文件
發(fā)現這個文件引用了一個地址
解決方案:切換命令
docker cp /usr/share/zoneinfo/Asia/Shanghai[容器ID或者NAME]:/etc/localtime
然后重啟容器
docker? restart [容器ID或者NAME]
方法二:共享主機的localtime
創(chuàng)建容器的時候指定啟動參數,掛載localtime文件到容器內
docker run --name -v /etc/localtime 容器id:/etc/localtime:ro ....
兩者時區(qū)不一致的問題就解決了。
到此這篇關于docker中mysql時間與系統(tǒng)時間不一致問題的文章就介紹到這了,更多相關docker時間不一致內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
云原生Docker創(chuàng)建并進入mysql容器的全過程
前面我們已經安裝好了Docker,也簡單了解了Docker,下面這篇文章主要給大家介紹了關于云原生Docker創(chuàng)建并進入mysql容器的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-02-02Docker安裝MS?SQL?Server并使用Navicat遠程連接的操作方法
SQL?Server支持廣泛的應用程序開發(fā)接口(API),包括T-SQL、ADO.NET、ODBC、OLE?DB等,并支持多種操作系統(tǒng),包括Windows、Linux和Docker等,這篇文章主要介紹了Docker安裝MS?SQL?Server并使用Navicat遠程連接,需要的朋友可以參考下2023-06-06