美文网首页
解决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