美文网首页
解决docker容器与宿主机时间不同步问题

解决docker容器与宿主机时间不同步问题

作者: 沉思的雨季 | 来源:发表于2020-04-02 16:15 被阅读0次

背景:通过date命令查看系统时间可以发现,两者相差了8小时。这是因为宿主机采用CST(China Shanghai Time,东八区时间),而docker镜像默认采用UTC(Coordinated Universal Time,标准时间),系统时区不一致导致的。

解决办法:

方法一、共享主机的localtime  

创建容器的时候指定启动参数,挂载localtime文件到容器内  ,保证两者所采用的时区是一致的。

docker run -d -v /etc/localtime:/etc/localtime --rm -p8888:8080tomcat:latest

 方法二、复制主机的localtime 

docker cp /etc/localtime:【容器ID或者NAME】/etc/localtime

在复制完成后,重启Docker容器。

 方法三、创建自定义的dockerfile 

创建dockerfile文件,自定义该镜像的时间格式及时区。格式如下:

FROM tomcat:8.5.38-jre8-alpine #定义使用的基础镜像,根据实际修改

MAINTAINER "制作人自定义" #定义镜像发布人,根据实际修改

#定义环境变量

ENV  TIME_ZONE Asia/Shanghai

#dockerfile添加命令,Alpine系统并无timezone及locatime配置,所以需要先安装

RUN \

#安装tzdata安装包,

apk add --no-cache tzdata \

#设置时区

&& echo "${TIME_ZONE}" > /etc/timezone \

&& ln -sf /usr/share/zoneinfo/${TIME_ZONE} /etc/localtime

保存后,利用docker build命令生成镜像使用即可。

相关文章

网友评论

      本文标题:解决docker容器与宿主机时间不同步问题

      本文链接:https://www.haomeiwen.com/subject/jmvxphtx.html