建設(shè)個(gè)人商城網(wǎng)站seo優(yōu)化知識(shí)
本地時(shí)區(qū)的修改
一般情況下,我們啟動(dòng)docker容器時(shí)指定了環(huán)境變量:
-e TZ:=Asia/Ho_Chi_Minh
,容器內(nèi)的時(shí)區(qū)就會(huì)變成東八區(qū),某些軟件則會(huì)讀取該環(huán)境變量作為其使用的時(shí)區(qū),該環(huán)境變量相當(dāng)于"殘缺版"的命令:
echo 'Asia/Ho_Chi_Minh' >/etc/timezone
為什么說殘缺版,繼續(xù)往下看。
上述環(huán)境變量生效后,隨之而變的還有本地時(shí)間(/etc/localtime),本地時(shí)間會(huì)根據(jù)時(shí)區(qū)自動(dòng)調(diào)整,使用命令:date查看:
root@75e7c81b599d:/# date
Tue Aug 8 10:12:05 CST 2023
本地時(shí)間的修改(一般不用設(shè)置,設(shè)置默認(rèn)時(shí)區(qū)即可)
通過ll /etc/localtime查看本地時(shí)間的指向,發(fā)現(xiàn)本地時(shí)間還是指向的默認(rèn)的UTC:
root@75e7c81b599d:/# ll /etc/localtime
lrwxrwxrwx 1 root root 27 Dec 20 2021 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC
但是為什么本地時(shí)間變成了對(duì)的時(shí)間呢?原因是上面已經(jīng)正確設(shè)置了時(shí)區(qū),date命令會(huì)自動(dòng)根據(jù)設(shè)置的時(shí)區(qū)進(jìn)行調(diào)節(jié)。
root@75e7c81b599d:/# date -R
Tue, 08 Aug 2023 10:37:35 +0800
那么如果我們不設(shè)置正確的時(shí)區(qū),默認(rèn)會(huì)使用UTC時(shí)區(qū),那么如何在不設(shè)定時(shí)區(qū)的情況下讓本地時(shí)間變的準(zhǔn)確呢?使用軟鏈重新指向即可
ln -sf /usr/share/zoneinfo/Asia/Ho_Chi_Minh /etc/localtime
存在的問題
在linux中,有一些程序會(huì)自己計(jì)算時(shí)間(比如cron),這些程序直接獲取本地時(shí)區(qū),并不會(huì)讀取你設(shè)置的環(huán)境變量,這時(shí)必須得修正本機(jī)的時(shí)區(qū),所以執(zhí)行下列設(shè)置,然后重啟具體的服務(wù)。
echo 'Asia/Ho_Chi_Minh' >/etc/timezone
dockerfile永久改動(dòng)
RUN ln -sf /usr/share/zoneinfo/Asia/Ho_Chi_Minh /etc/localtime
RUN echo 'Asia/Ho_Chi_Minh' >/etc/timezone