docker容器設(shè)置本地時間和本地時區(qū)的實現(xiàn)方法
本地時區(qū)的修改
一般情況下,我們啟動docker容器時指定了環(huán)境變量:-e TZ:=Asia/Shanghai
,容器內(nèi)的時區(qū)就會變成東八區(qū),某些軟件則會讀取該環(huán)境變量作為其使用的時區(qū),該環(huán)境變量相當(dāng)于"殘缺版"的命令:
echo 'Asia/Shanghai' >/etc/timezone
為什么說殘缺版,繼續(xù)往下看。
上述環(huán)境變量生效后,隨之而變的還有本地時間(/etc/localtime),本地時間會根據(jù)時區(qū)自動調(diào)整,使用命令:date
查看:
root@75e7c81b599d:/# date Tue Aug 8 10:12:05 CST 2023
本地時間的修改(一般不用設(shè)置,設(shè)置默認(rèn)時區(qū)即可)
通過ll /etc/localtime
查看本地時間的指向,發(fā)現(xiàn)本地時間還是指向的默認(rèn)的UTC:
root@75e7c81b599d:/# ll /etc/localtime lrwxrwxrwx 1 root root 27 Dec 20 2021 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC
但是為什么本地時間變成了對的時間呢?原因是上面已經(jīng)正確設(shè)置了時區(qū),date
命令會自動根據(jù)設(shè)置的時區(qū)進(jìn)行調(diào)節(jié)。
root@75e7c81b599d:/# date -R Tue, 08 Aug 2023 10:37:35 +0800
那么如果我們不設(shè)置正確的時區(qū),默認(rèn)會使用UTC時區(qū),那么如何在不設(shè)定時區(qū)的情況下讓本地時間變的準(zhǔn)確呢?
使用軟鏈重新指向即可
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
存在的問題
在linux中,有一些程序會自己計算時間(比如cron),這些程序直接獲取本地時區(qū),并不會讀取你設(shè)置的環(huán)境變量,這時必須得修正本機(jī)的時區(qū),所以執(zhí)行下列設(shè)置,然后重啟具體的服務(wù)。
echo 'Asia/Shanghai' >/etc/timezone
dockerfile永久改動
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN echo 'Asia/Shanghai' >/etc/timezone
到此這篇關(guān)于docker容器設(shè)置本地時間和本地時區(qū)的實現(xiàn)方法的文章就介紹到這了,更多相關(guān)docker 設(shè)置本地時間和本地時區(qū)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker鏡像構(gòu)建速度優(yōu)化實現(xiàn)
本文主要介紹了Docker鏡像構(gòu)建速度優(yōu)化實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12Docker數(shù)據(jù)卷掛載命令volume(-v)與mount的使用總結(jié)
本文主要介紹了Docker數(shù)據(jù)卷掛載命令volume(-v)與mount的使用總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Docker 容器指定自定義網(wǎng)段的固定IP/靜態(tài)IP地址
這篇文章主要介紹了Docker 容器指定自定義網(wǎng)段的固定IP/靜態(tài)IP地址的相關(guān)資料,需要的朋友可以參考下2016-12-12Docker 運(yùn)行多個Springboot的詳細(xì)教程
這篇文章主要介紹了Docker 運(yùn)行多個Springboot的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12