?問題描述:
在我們平時使用docker,運行我們的應(yīng)用的時候麸锉,訪問應(yīng)用頁面的時間與現(xiàn)在相差8個小時
無法結(jié)合時間點去判斷當(dāng)時服務(wù)的異常
同樣,當(dāng)我們在docker上運行某些服務(wù)時,需要時間與宿主機同步胸蛛,否則會發(fā)生異常
原因:
宿主機設(shè)置了時區(qū)习绢,而Docker容器并沒有設(shè)置渠抹,導(dǎo)致兩者相差8小時
解決辦法:
為了保證容器和宿主機之間的時間同步:
可以使用以下幾種辦法:
1.Docker run
使用docker run運行容器時,添加如下參數(shù)
-v /etc/localtime:/etc/localtime:ro
docker run -it -v /etc/localtime:/etc/localtime:ro centos
2.DockerFile
在Docker File中添加如下參數(shù):
將時區(qū)配置添加到環(huán)境變量闪萄,并使用軟連接梧却,并將時區(qū)配置文件覆蓋
FROM centos? # Centos 基礎(chǔ)鏡像
ENV TimeZone=Asia/Shanghai? ? #添加時區(qū)環(huán)境變量,亞洲败去,上海
RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone? #使用軟連接放航,并且將時區(qū)配置覆蓋/etc/timezone
3.正在運行的容器,時間如何同步圆裕?
在宿主機執(zhí)行命令如下:
docker cp -L /usr/share/zoneinfo/Asia/Shanghai 【容器名】:/etc/localtime