運行環境,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 #