Alpine 是 Docker 中非常流行的镜像,因为它体积小(5 MB 左右),且包管理机制友善。然而即使体积小,一旦网络条件受到限制,使用 Alpine 安装依赖依然十分费劲。这让 Docker 镜像的安装变得非常缓慢且容易失败。
假设原先的 Dockerfile 如下:
FROM alpine:edge
RUN apk update && \
# ...
那么可以考虑改用国内的镜像源来加速网络下载过程:
FROM alpine:edge
RUN echo 'http://mirrors.aliyun.com/alpine/edge/community/' > \
/etc/apk/repositories && \
echo 'http://mirrors.aliyun.com/alpine/edge/main/' >> \
/etc/apk/repositories && \
apk update && \
# ...
除了上面提到的阿里镜像之外,清华、南大、中科大等镜像也可以考虑。更多镜像及其对应的网络状态可以在这里找到。
注意使用的镜像版本必须与 Docker 需要使用的版本保持一致。如上例中,Docker 需要基于 alpine:edge
,那么在设置镜像的使用,也应该使用 edge
的版本(在 URL 中可以找到 /alpine/edge/
)。