Windows 10 系统, 修改Docker容器系统时间区域,

运行环境,windows 10 , dockerdesktop 最新版。 遇到两情况;

情况1: 系统有zoneinfo信息,(拉取redis, 并修改用redis 制作镜像里的系统时间。)

情况2:系统没有zoneinfo信息,(容器是:ubuntu 18, 没有zoneinfo数据)

 

情况1:
拉取 redis

docker pull redis

创建dockerfile文件

FROM redis

# 系统时间
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

# 复制宿住的配置文件
COPY redis.conf /usr/local/etc/redis/redis.conf

CMD ["redis-server", "/usr/local/etc/redis/redis.conf"]

在dockerfile 文件里加上下面这行命令即可。前提是容器里有 zoneinfo 数据。如果没有,需要安装ztData. 具体代码在文章尾部

RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

制作 image

docker build -t ims.redis .

运行 image

docker run -p 6379:6379 ims.redis

查看 Container id

docker ps

进入运行的image(945c9948ab07 即是container id)

docker exec -it 945c9948ab07 /bin/bash

查看当前时间

 

情况2 :

如果容器没有zoneinfo 文件,需要下载,Dockerfile 代码如下:

RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN apt-get clean
RUN apt-get update && apt-get install -y tzdata
ENV TZ=Asia/Shanghai
#RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN echo $TZ > /etc/timezone
RUN dpkg-reconfigure -f noninteractive tzdata

 结果

# date
Sun Sep 27 11:31:39 CST 2020
#

 

posted @ 2020-08-03 10:08  Qiozi  阅读(1813)  评论(0编辑  收藏  举报