一份如何選取Linux容器鏡像的對比報告闡述了鏡像選取中的一些最佳實踐。報告中涉及了架構、安全和性能等因素,此外,商業用戶還需要考慮廠商的支持情況。
Linux容器提供了對內核空間和用戶空間組件的獨立管理,這是是通過使用cgroups和命名空間(Namespace)等資源及進程隔離機制實現的。雖然Solaris和BSD也提供了與Linux容器技術類似的抽象機制,但此份對比報告只聚焦于Linux容器技術。運行容器的主機提供了運行容器所需的操作系統內核和一系列工具。另一方面,容器鏡像提供了運行分布在容器間的應用所需的軟件庫、解釋器和應用代碼。所有這些都依賴于底層系統庫。對于解釋性語言也同樣適用,因為解釋器本身也是使用底層語言編寫的。
第一個原則是容器鏡像的大小。各容器鏡像在磁盤上的大小不等,從Fedora這樣的230MB大小,到Alpine Linux這樣的4MB大小。但是在選取一個鏡像發布版時,鏡像的大小并非唯一應該考慮的問題。鏡像的主要分組包括Debian/Ubuntu、RHEL、Centos、Fedora和Alpine。