Docker容器设置时区

原创:佛布朗斯基 程序员技术笔记

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

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

构建镜像设置默认时区

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

FROM alpineMAINTAINER 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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值