解決docker中mysql時(shí)間與系統(tǒng)時(shí)間不一致問(wèn)題
最近在Docker中裝mysql時(shí),發(fā)現(xiàn)數(shù)據(jù)庫(kù)時(shí)間與系統(tǒng)時(shí)間相差8個(gè)小時(shí)。
linux服務(wù)器時(shí)間:

進(jìn)入mysql,輸入date如下

發(fā)現(xiàn)兩者時(shí)區(qū)不同。因?yàn)閙ysql容器是在docker中安裝的,所以mysql的時(shí)間不對(duì)應(yīng)該是宿主docker導(dǎo)致的。
查詢資料發(fā)現(xiàn),docker的默認(rèn)時(shí)區(qū)是0區(qū),其實(shí)這會(huì)對(duì)安裝的容器造成不少麻煩,比如執(zhí)行日志的記錄不準(zhǔn)確等。
有如下兩種方式解決:
方法一:復(fù)制主機(jī)的localtime
docker cp /etc/localtime [容器ID或者NAME]:/etc/localtime
注意:因?yàn)闀r(shí)區(qū)問(wèn)題可能上面命令會(huì)報(bào)下面錯(cuò)誤
Error response from daemon: Error processing tar file(exit status 1):?
invalid symlink "/usr/share/zoneinfo/UCT" -> "../usr/share/zoneinfo/Asia/Shanghai"
查看這個(gè)文件

發(fā)現(xiàn)這個(gè)文件引用了一個(gè)地址
解決方案:切換命令
docker cp /usr/share/zoneinfo/Asia/Shanghai[容器ID或者NAME]:/etc/localtime
然后重啟容器
docker? restart [容器ID或者NAME]
方法二:共享主機(jī)的localtime
創(chuàng)建容器的時(shí)候指定啟動(dòng)參數(shù),掛載localtime文件到容器內(nèi)
docker run --name -v /etc/localtime 容器id:/etc/localtime:ro ....
兩者時(shí)區(qū)不一致的問(wèn)題就解決了。
到此這篇關(guān)于docker中mysql時(shí)間與系統(tǒng)時(shí)間不一致問(wèn)題的文章就介紹到這了,更多相關(guān)docker時(shí)間不一致內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信