Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和 BusyBox以减少系统的体积和运行时的资源消耗。Alpine Linux提供了自己的包管理工具:apk,我们可以通过https://pkgs.alpinelinux.org/packages 查询包信息。
    Alpine Docker镜像继承了Alpine Linux发行版的这些优势,相比于其他Linux Docker进行,它的体积非常小,docker.io/alpine:3.7只有4.15M,而 CentOS和Ubuntu系列的Docker镜像则都在200M左右。据说Docker官方也已开始推荐使用Alpine替代之前的Ubuntu来作为基础镜像,因为这样会带来多个好处,包括镜像下载速度加快,镜像安全性提高,占用更少的主机磁盘空间等。
    image.png

    Alpine Docker为了精简体积,是没有安装bash的,但我们可以依照需要定制一个安装bash的镜像,Dockerfile内容如下:

    1. FROM alpine:3.7
    2. MAINTAINER Rethink
    3. #更新Alpine的软件源为国内(清华大学)的站点,因为从默认官源拉取实在太慢了。。。
    4. RUN echo "https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/main/" > /etc/apk/repositories
    5. RUN apk update \
    6. && apk upgrade \
    7. && apk add --no-cache bash \
    8. bash-doc \
    9. bash-completion \
    10. && rm -rf /var/cache/apk/* \
    11. && /bin/bash


    构建镜像:docker build -t alpine-bash . ,构建完成后查看镜像的体积也只有10.2M而已。
    image.png
    运行容器进行测试:docker run -it —rm alpine-bash
    image.png

    原文:https://www.jianshu.com/p/0b49ddb732a3