Docker 底层镜像之选择困难症
Scratch
scratch
是一个空镜像,只能用于构建其他镜像,比如你要运行一个包含所有依赖的二进制文件,如Golang
程序,可以直接使用scratch
作为基础镜像
Busybox
scratch
是个空镜像,如果希望镜像里可以包含一些常用的Linux
工具,busybox
镜像是个不错选择,镜像本身只有763KB
,非常便于构建小镜像
BusyBox
是一个集成了一百多个最常用Linux
命令和工具(如cat
、echo
、grep
、mount
、telnet
等)的精简工具箱,它只需要几百KB
的大小,很方便进行各种快速验证,被誉为Linux 系统的瑞士军刀
BusyBox
可运行于多款POSIX
环境的操作系统中,如Linux
(包括Android
)、Hurd
、FreeBSD
等
Alpine
Alpine
采用了 musl libc
和busybox
以减小系统的体积和运行时资源消耗,但功能上比busybox
又完善的多,Alpine
还提供了自己的包管理工具apk
,可以通过packages
网站上查询包信息,也可以直接通过 apk 命令直接查询和安装各种软件
Alpine Docker
镜像也继承了Alpine Linux
发行版的这些优势。相比于其他Docker
镜像,它的容量非常小,仅仅只有5 MB
左右(对比Ubuntu
系列镜像接近200
MB),且拥有非常友好的包管理机制