一份如何选取Linux容器镜像的对比报告阐述了镜像选取中的一些最佳实践。报告中涉及了架构、安全和性能等因素,此外,商业用户还需要考虑厂商的支持情况。
Linux容器提供了对内核空间和用户空间组件的独立管理,这是是通过使用cgroups和命名空间(Namespace)等资源及进程隔离机制实现的。虽然Solaris和BSD也提供了与Linux容器技术类似的抽象机制,但此份对比报告只聚焦于Linux容器技术。运行容器的主机提供了运行容器所需的操作系统内核和一系列工具。另一方面,容器镜像提供了运行分布在容器间的应用所需的软件库、解释器和应用代码。所有这些都依赖于底层系统库。对于解释性语言也同样适用,因为解释器本身也是使用底层语言编写的。
第一个原则是容器镜像的大小。各容器镜像在磁盘上的大小不等,从Fedora这样的230MB大小,到Alpine Linux这样的4MB大小。但是在选取一个镜像发布版时,镜像的大小并非唯一应该考虑的问题。镜像的主要分组包括Debian/Ubuntu、RHEL、Centos、Fedora和Alpine。