您好,登錄后才能下訂單哦!
這篇文章主要介紹“Docker如何解決容器時(shí)間與主機(jī)時(shí)間不一致”,在日常操作中,相信很多人在Docker如何解決容器時(shí)間與主機(jī)時(shí)間不一致問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Docker如何解決容器時(shí)間與主機(jī)時(shí)間不一致”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
通過date命令查看時(shí)間
查看主機(jī)時(shí)間
[root@localhost ~]# date 2016年 07月 27日 星期三 22:42:44 CST
查看容器時(shí)間
root@b43340ecf5ef:/#date Wed Jul 27 14:43:31 UTC 2016
可以發(fā)現(xiàn),他們相隔了8小時(shí)。
CST應(yīng)該是指(China Shanghai Time,東八區(qū)時(shí)間)
UTC應(yīng)該是指(Coordinated Universal Time,標(biāo)準(zhǔn)時(shí)間)
所以,這2個(gè)時(shí)間實(shí)際上應(yīng)該相差8個(gè)小時(shí)。(bluer: 所以沒有設(shè)置過的容器, 一般跟宿主機(jī)時(shí)間相差8h)
所以,必須統(tǒng)一兩者的時(shí)區(qū)。
創(chuàng)建容器的時(shí)候指定啟動(dòng)參數(shù),掛載localtime文件到容器內(nèi) ,保證兩者所采用的時(shí)區(qū)是一致的。
docker run -d -v /etc/localtime:/etc/localtime --rm -p 8888:8080 tomcat:latest
docker cp /etc/localtime 【容器ID或者NAME】:/etc/localtime
在完成后,再通過date命令進(jìn)行查看當(dāng)前時(shí)間。
但是,在容器中運(yùn)行的程序的時(shí)間不一定能更新過來,比如在容器運(yùn)行的MySQL服務(wù),在更新時(shí)間后,通過sql查看MySQL的時(shí)間
select now() from dual;
可以發(fā)現(xiàn),時(shí)間并沒有更改過來。
這時(shí)候必須要重啟mysql服務(wù)或者重啟Docker容器,mysql才能讀取到更改過后的時(shí)間。
創(chuàng)建dockerfile文件,其實(shí)沒有什么內(nèi)容,就是自定義了該鏡像的時(shí)間格式及時(shí)區(qū)。
FROM redisFROM tomcatENV CATALINA_HOME /usr/local/tomcat#設(shè)置時(shí)區(qū)RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo 'Asia/Shanghai' >/etc/timezone \
保存后,利用docker build命令生成鏡像使用即可。
到此,關(guān)于“Docker如何解決容器時(shí)間與主機(jī)時(shí)間不一致”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。