Tag - 容器

docker alpine 容器 时区    2017-01-11 09:51:41    23

在使用docker的时候,由于很多基础linux镜像都比较大,alpine这个仅仅几兆的linux基础镜像受到了很多人喜欢,笔者也不例外,可是由于alpine中的一些配置及命令与常见的centos等系统在一些方面不一样,下面来看看时区问题是如何解决的:

原因:alpine中,原生是不带时区相关的命令及文件的,需要安装额外的包来支持,然后需要将时区文件内容替换为localtime文件

解决办法

建议打造自己的alpine基础镜像,如下是我的alpine的Dockerfile:

  1. FROM alpine:3.4
  2. MAINTAINER firewarm LightingLiu <liuyg@liuyingguang.cn>
  3. # Install root filesystem
  4. ADD ./rootfs /
  5. # Install base packages
  6. RUN apk update && apk add curl bash tree tzdata \
  7. && cp -r -f /usr/share/zoneinfo/Hongkong /etc/localtime \
  8. && echo -ne "Alpine Linux 3.4 image. (`uname -rsv`)\n" >> /root/.built
  9. # Define bash as default command
  10. CMD ["/bin/bash"]

当这个镜像完成以后,不需要配置任何环境变量即可使用京八区的时区及时间

参考的源代码

  1. docker run -it --rm alpine /bin/sh
  2. / # date
  3. Sun May 8 20:46:18 UTC 2016
  4. / # apk add -U tzdata
  5. fetch http://dl-cdn.alpinelinux.org/alpine/v3.3/main/x86_64/APKINDEX.tar.gz
  6. fetch http://dl-cdn.alpinelinux.org/alpine/v3.3/comm
3/3