如果你運行docker 容器,發現容器內的docker時間與宿主機上的時間不一致,解決方法很容易。
但是要注意的是,java程序默認使用UTC時間,本地時間一般設置為CST時間,所以常會出現差8個時區的問題。
所以說你的java日志出現了時間與北京時間差8小時問題,老老實實的去修改鏡像吧!!
運行的是centos7容器,使用timedatectl進行校準。
timedatectl status | 查看
[root@docker ~]# 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 | 切換為北京時間
[root@docker ~]# timedatectl set-timezone Asia/Shanghai
clock -w | 使之修改生效
[root@docker ~]# 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
timg (12).jpg