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來作為基礎鏡像,因為這樣會帶來多個好處,包括鏡像下載速度加快,鏡像安全性提高,占用更少的主機磁盤空間等。
alpine docker
Alpine Docker為了精簡體積,是沒有安裝bash的,但我們可以依照需要定制一個安裝bash的鏡像,Dockerfile內容如下:
FROM alpine:3.7
MAINTAINER Rethink
#更新Alpine的軟件源為國內(清華大學)的站點,因為從默認官源拉取實在太慢了。。。
RUN echo "https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/main/" > /etc/apk/repositories
RUN apk update \
&& apk upgrade \
&& apk add --no-cache bash \
bash-doc \
bash-completion \
&& rm -rf /var/cache/apk/* \
&& /bin/bash
構建鏡像:docker build -t alpine-bash .
,構建完成后查看鏡像的體積也只有10.2M而已。
image.png
運行容器進行測試:
docker run -it --rm alpine-bash
image.png
參考: