Docker 容器中時間不同步解決方案
阿新 • • 發佈:2018-12-12
問題描述
如果你執行docker 容器,發現容器內的docker時間與宿主機上的時間不一致,解決方法很容易。
但是要注意的是,java程式預設使用UTC時間,本地時間一般設定為CST時間,所以常會出現差8個時區的問題。
所以說你的java日誌出現了時間與北京時間差8小時問題,老老實實的去修改映象吧!!
解決方案
執行的是centos7容器,使用timedatectl進行校準。
timedatectl status | 檢視
[[email protected] ~]# timedatectl status Local time: Fri 2017-12-22 11:39:25 CST Universal time: Fri 2017-12-22 03:39:25 UTC RTC time: Fri 2017-12-22 03:39:25 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a
timedatectl set-timezone Asia/Shanghai | 切換為北京時間
[[email protected] ~]# timedatectl set-timezone Asia/Shanghai
clock -w | 使之修改生效
[[email protected] ~]# clock -w
執行的是centos6.8, 使用/etc/sysconfig/clock校準
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime echo 'Asia/Shanghai' >/etc/timezone cat << EOF > /etc/sysconfig/clock ZONE="Asia/Shanghai" EOF grep ZONE /etc/sysconfig/clock date -R; date +%z
那麼整理一下,我們可以寫到映象製作指令碼中
cat << EOF > /root/docker/Dockerfile #繼承映象 FROM 172.16.1.150:5000/java_v1.2.0.171124 #作者資訊 MAINTAINER by cgls #開始製作 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN echo 'Asia/Shanghai' >/etc/timezone RUN cat << EOF > /etc/sysconfig/clock ZONE="Asia/Shanghai" CMD ["/root/start.sh"] EOF