濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > docker中時(shí)區(qū)問(wèn)題的處理方法

docker中時(shí)區(qū)問(wèn)題的處理方法

熱門標(biāo)簽:新邵電銷機(jī)器人企業(yè) 蘭州ai電銷機(jī)器人招商 高德地圖標(biāo)注論壇 北海市地圖標(biāo)注app 江西外呼系統(tǒng) 新科美甲店地圖標(biāo)注 湖北ai智能電銷機(jī)器人 外呼系統(tǒng)打哪顯哪 AI電銷機(jī)器人 源碼

背景

這兩天在打docker的時(shí)候,發(fā)現(xiàn)自己的容器啟動(dòng)之后,里面date -R的輸出時(shí)區(qū)是UTC,總是和北京時(shí)間差了8個(gè)小時(shí).


標(biāo)準(zhǔn)鏡像


時(shí)區(qū)是UTC

查看/etc/localtime,發(fā)現(xiàn)默認(rèn)指向的是Etc/UTC時(shí)區(qū).而且TZ環(huán)境變量也沒(méi)有被設(shè)置.


linux中的時(shí)區(qū)問(wèn)題到底是怎么處理的

實(shí)際上,我們所有關(guān)于時(shí)區(qū)處理的問(wèn)題都是glibc中處理時(shí)區(qū)的問(wèn)題. 這個(gè)問(wèn)題最權(quán)威的文檔就是glibc的官方文檔,里面關(guān)于TZ環(huán)境變量的描述介紹了時(shí)區(qū)問(wèn)題的處理.

https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html#TZ-Variable

其中和我們相關(guān)的部分如下.

核心意思如下: 在glibc中,TZ環(huán)境變量的值是一個(gè)文件的名字,這個(gè)文件的內(nèi)容描述了時(shí)區(qū)相關(guān)的信息.

如果TZ這個(gè)環(huán)境變量沒(méi)有設(shè)置,那么系統(tǒng)會(huì)選擇一個(gè)默認(rèn)值,在glibc中,其默認(rèn)值為/etc/localtime. 如果TZ環(huán)境變量有值,并且這個(gè)值是以/開(kāi)頭的,那么是一個(gè)絕對(duì)路徑的文件名,否則文件名為/usr/share/zoneinfo/$TZ. /usr/share/zoneinfo目錄下面有世界各地的本地時(shí)間信息,比如Asia/Shanghai.一般這個(gè)目錄下面的文件是被tzdata這個(gè)包安裝的.

按照這個(gè)思路,我們強(qiáng)制指定TZ環(huán)境變量為Asia/Shanghai,時(shí)區(qū)正確


強(qiáng)制修改/etc/localtime文件,時(shí)區(qū)也正確.

docker容器處理時(shí)區(qū)的方法

根據(jù)上面的描述,在docker容器中設(shè)置時(shí)區(qū)其實(shí)有兩個(gè)主要的方法. 一個(gè)是直接進(jìn)行TZ環(huán)境變量設(shè)置,另一個(gè)是不設(shè)置TZ環(huán)境變量,直接修改/etc/localtime的內(nèi)容(通過(guò)軟鏈接或者文件直接復(fù)制都可以)

這里以設(shè)置TZ環(huán)境變量為例(我自己比較喜歡這樣做,感覺(jué)比修改/etc/localtime更方便).

首先,我們可以在Dockerfile里面添加ENV TZ=Asia/Shanghai,這樣docker build出來(lái)的鏡像默認(rèn)TZ環(huán)境變量就是我們要的值了.


其次,我們也可以在容器拉起的時(shí)候使用-e TZ=Asia/Shanghai進(jìn)行TZ環(huán)境變量設(shè)置,這個(gè)設(shè)置就是動(dòng)態(tài)的,同一個(gè)鏡像我們可以在拉起的時(shí)候設(shè)置不同的值.


總結(jié)

docker中的時(shí)區(qū)處理實(shí)際上就是glibc中的時(shí)區(qū)處理,了解了glibc中對(duì)事情的處理方法,核心是TZ環(huán)境變量和/etc/localtime文件,docker中的時(shí)期問(wèn)題處理就簡(jiǎn)單了.

標(biāo)簽:黔東 黃石 南陽(yáng) 池州 大理 自貢 阿克蘇 海南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《docker中時(shí)區(qū)問(wèn)題的處理方法》,本文關(guān)鍵詞  docker,中,時(shí)區(qū),問(wèn),題的,處理,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《docker中時(shí)區(qū)問(wèn)題的處理方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于docker中時(shí)區(qū)問(wèn)題的處理方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    聂荣县| 福贡县| 武鸣县| 偏关县| 安平县| 化德县| 兰州市| 蓬安县| 虎林市| 夹江县| 涿州市| 广水市| 天等县| 明溪县| 巴林右旗| 西充县| 灵璧县| 彩票| 天全县| 肥乡县| 瓦房店市| 汝城县| 会理县| 尖扎县| 安庆市| 桑植县| 清新县| 惠来县| 德安县| 方山县| 台北县| 新竹市| 崇信县| 长丰县| 长宁区| 阿坝县| 兴山县| 名山县| 阳曲县| 南城县| 双流县|