Docker 解决容器时间与主机时间不一致的问题三种解决方案
Docker容器时间与主机时间不一致
查看主机时间: date
查看docker容器时间 docker exec 容器名/容器id date
可以发现,他们相隔了8小时。
CST应该是指(China Shanghai Time,东八区时间)
UTC应该是指(Coordinated Universal Time,标准时间)
所以,这2个时间实际上应该相差8个小时。(bluer: 所以没有设置过的容器, 一般跟宿主机时间相差8h)
所以,必须统一两者的时区。
共享主机的localtime (方法一)
创建容器的时候指定启动参数,挂载localtime文件到容器内 ,保证两者所采用的时区是一致的。
docker run --name <name> -v /etc/localtime:/etc/localtime:ro ....
复制主机的localtime (方法二)
docker cp /etc/localtime [containerId]:/etc/localtime
创建自定义的dockerfile (方法三)
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' >/etc/timezone \