alpine镜像是一个完整的操作系统镜像,因为其小巧、功能完备的特点,非常适合作为容器的基础镜像。

如ubuntu、centos镜像动辄几百M的体积下,只有5M的alpine简直是一股清流。

当然alpine在维持体积小的情况下,必然牺牲一些东西。比如,他就不带其他的时区文件,在默认的情况下,你是没办法改时区的。使用以下方法可以修改镜像的时区为UTC(北京时区)

方法一:

Dockerfile里加上这段:

RUN apk update && apk add tzdata 
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
RUN echo "Asia/Shanghai" > /etc/timezone

方法二:

Dockerfile里加上这段:

RUN apk update && apk add tzdata 
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
RUN echo "Asia/Shanghai" > /etc/timezone

方法三:

Dockerfile里加上这段:

RUN echo -n 'VFppZjIAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAAaAAAAAgAAAAjIWV6AyQn5cMnTvQDLBYrwy3xAANI7PvDTi3uA1EKt8NVFIgDWTL/w1zy/ANgGZnDZHfKA2UF88B66UiAfaZuQIH6EoCFJfZAiZ6EgIylfkCRHgyAlEnwQJidlICbyXhAoB0cgKNJAEAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAB+kAEAAABwgAAEQ0RUAENTVAAAAAAAVFppZjIAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAbAAAAAwAAAAz/fjZDKf/IWV6A/8kJ+XD/ydO9AP/LBYrw/8t8QAD/0js+8P/Ti3uA/9RCrfD/1UUiAP/WTL/w/9c8vwD/2AZmcP/ZHfKA/9lBfPAAAAAAHrpSIAAAAAAfaZuQAAAAACB+hKAAAAAAIUl9kAAAAAAiZ6EgAAAAACMpX5AAAAAAJEeDIAAAAAAlEnwQAAAAACYnZSAAAAAAJvJeEAAAAAAoB0cgAAAAACjSQBACAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIAAHHXAAAAAH6QAQQAAHCAAAhMTVQAQ0RUAENTVAAAAAAAAAAKQ1NULTgK'|base64 -d > /etc/localtime && echo -n 'Asia/Shanghai' > /etc/timezone

方法四:

如果你的镜像已经生成了,那么在启动容器时,可以使用挂载宿主机时区文件的方式,配置镜像时区。当然,镜像的时间也是随着宿主机时间改变的。所以此种方法首先要保证宿主机时间是正确的。

启动docker容器时加上下面这段:

-v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone