运行环境,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 #