前言:在Docker容器創建好之后,可能會發現容器時間跟宿主機時間不一致,此時需要同步它們的時間,讓容器時間跟宿主機時間保持一致。
一、分析時間不一致的原因
宿主機采用了CST時區,CST應該是指(China Shanghai Time,東八區時間)
容器采用了UTC時區,UTC應該是指(Coordinated Universal Time,標准時間)
此時,容器與宿主機之間采用的時區不一致,兩個時區之間相隔8小時。
二、同步時間的方法
方案1:共享主機localtime
在創建容器的時候指定啟動參數,掛載宿主機的localtime文件到容器內,以此來保證宿主機和容器的時區一致。
docker run --privileged --name=qinjiaxi --net=host -it -v ~:/share /etc/localtime:/etc/localtime:ro docker.xxx.xxx.com.cn/robotframework:2.7.14 bash
方案2:復制宿主機localtime到容器中
docker cp /etc/localtime <container_id>:/etc/
方案3:在創建dockerfile時自定義鏡像的時間格式與時區
在dockerfile創建初期增加一行內容,內容規定了該鏡像的時間格式以及時區。
#設置時區 RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
總結:通過以上三種方案均可實現docker容器的時間與宿主機時間同步,具體選擇哪個方案根據實際情況而定。