暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Docker容器设置时区

1037

 

最近用Go开发了一套任务管理系统,部署到服务器上发现时间比线下环境慢了个8小时,后面查找了资料,发现这是因为docker容器默认时间为UTC,所以我们只要设置docker容器默认时区为我们想要的时区就可以。

在这里跟大家分享两个方法来设置容器的时区,不过考虑到构建时间的问题,建议大家使用第二种方法。

 

构建镜像设置默认时区

在构建镜像的时候,我们可以设置镜像时区来达到我们的目标,只要加入这一句命令行即可,博主的镜像是基于Alphine进行构建,所以直接多加一行运行命令

    FROM alpine
    MAINTAINER igitlib


    RUN apk add --no-cache tzdata \
    && cp usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone \
    && apk del tzdata

    这样在构建镜像的时候,我们就可以指定镜像的时区,从而达到我们的目标,不过这样在构建镜像的时候会消耗一些时间,不推荐这样用。 

    部署容器设置默认时区

     

    如果我们的服务是通过docker-compose方法部署服务,我们可以在部署服务的时候,设置时区,详细如下

      version: "3"
      services:
      project_go_api_compose:
      image: 镜像地址
      container_name: docker_go_gin_compose
      volumes: #挂载宿主机东八时区
      - /etc/localtime:/etc/localtime:ro
      environment: #设置东八时区上海时间
      - SET_CONTAINER_TIMEZONE=true
      - CONTAINER_TIMEZONE=Asia/Shanghai
      restart: always
      ports:
      - 9911:9911

      这样我们也可以设置容器时区,同时不消耗时间。

      以上两种方式都可以设置容器的时区,大家根据的情况使用。


      【图】来源于网络

      【文】https://hongzx.cn/home/blogShow/223

      Follow

      佛布朗斯基博客

      (佛布朗斯基)我是一只热爱编程的码农,已从事后端开发5年以上,也正因此,在日常工作学习中,会遇到蛮多问题需要解决,我希望透过记录,真实地将问题以及解决方法保存下来,更为高效地解决问题是我的初衷。



       

      文章转载自程序员技术笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论