Alpine Linux是一個(gè)輕型Linux發(fā)行版,它不同于通常的Linux發(fā)行版健芭,Alpine采用了musl libc 和 BusyBox以減少系統(tǒng)的體積和運(yùn)行時(shí)的資源消耗。Alpine Linux提供了自己的包管理工具:apk朵夏,我們可以通過(guò)https://pkgs.alpinelinux.org/packages 查詢包信息豆混。
Alpine Docker鏡像繼承了Alpine Linux發(fā)行版的這些優(yōu)勢(shì),相比于其他Linux Docker進(jìn)行触徐,它的體積非常小,docker.io/alpine:3.7只有4.15M狐赡,而 CentOS和Ubuntu系列的Docker鏡像則都在200M左右撞鹉。據(jù)說(shuō)Docker官方也已開(kāi)始推薦使用Alpine替代之前的Ubuntu來(lái)作為基礎(chǔ)鏡像,因?yàn)檫@樣會(huì)帶來(lái)多個(gè)好處颖侄,包括鏡像下載速度加快鸟雏,鏡像安全性提高,占用更少的主機(jī)磁盤(pán)空間等览祖。
Alpine Docker為了精簡(jiǎn)體積孝鹊,是沒(méi)有安裝bash的,但我們可以依照需要定制一個(gè)安裝bash的鏡像展蒂,Dockerfile內(nèi)容如下:
FROM alpine:3.7
MAINTAINER Rethink
#更新Alpine的軟件源為國(guó)內(nèi)(清華大學(xué))的站點(diǎn)又活,因?yàn)閺哪J(rèn)官源拉取實(shí)在太慢了。锰悼。柳骄。
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
構(gòu)建鏡像:docker build -t alpine-bash .
,構(gòu)建完成后查看鏡像的體積也只有10.2M而已。
運(yùn)行容器進(jìn)行測(cè)試:
docker run -it --rm alpine-bash
參考: