有類似docker的軟件:1、Podman,是一個無守護程序的開源Linux原生容器引擎;2、LXD,是一個專為LXC Linux容器設計的開源容器引擎;3、Buildah,是是紅帽為容器化系統開發的一個OCI鏡像構建工具;4、RunC等。
本教程操作環境:linux7.3系統、docker20版、Dell G3電腦。
有類似docker的軟件。
Docker 誕生于 2013 年,并普及了容器的概念,以至于大多數人仍然將容器的概念等同于“Docker 容器”。
作為第一個吃螃蟹的人,Docker 設置了新加入者必須遵守的標準。例如,Docker 有一個大型系統鏡像庫。所有的替代方案都必須使用相同的鏡像格式,同時試圖改變 Docker 所基于的整個堆棧的一個或多個部分。
在此期間,出現了新的容器標準,容器生態系統朝著不同方向發展?,F在除了 Docker 之外,還有很多方法可以使用容器。
類似docker的容器管理軟件
1、Podman
Podman 是 RedHat 開發的一個無守護程序的開源 Linux 原生容器引擎,用于構建、運行和管理 Linux OCI 容器與容器鏡像。盡管 Podman 提供了一個類似于 Docker 的命令行界面,但它的操作方式并不相同。
Docker 和 Podman 之間的一個顯著區別是,Docker 運行一個持久的、自給自足的運行時來管理其對象或稱為 dockerd 的守護進程;而 Podman 并不依賴守護進程來工作,相反,Podman 將容器作為子進程啟動,它還直接與注冊表和使用運行時進程的 Linux 內核進行交互,也正因如此,Podman 被稱為無守護進程的容器技術。
沒有守護進程提高了 Podman 作為容器引擎的靈活性,消除了對單個進程的依賴。Podman 與 Docker 的另一大不同就是它不需要 root 權限。這一特點提供了一個額外的安全緩沖區,限制了某些可能操縱關鍵系統設置并使容器和包含的應用程序易受攻擊的潛在危險進程。
此外,Podman 可以運行 pod–包含一個或多個容器的集合,作為一個單一實體管理,并利用共享的資源池。通過這項能力,Podman 用戶可以將他們的工作負載轉移到 Kubernetes。
2、LXD
LXD 一個專為 LXC Linux 容器設計的開源容器引擎。LXC 使用戶能夠在隔離的容器或類似于虛擬機的虛擬環境中運行應用程序,而無需承擔管理單個內核的技術負擔。LXD 提供了一個用于連接 LXC 軟件庫的接口,同時創建了一個守護進程,負責處理網絡、數據存儲和管理多個 LXC 容器。盡管 LXC 可以作為獨立工具運行,但它擁有有限的功能子集。LXD 提供了這些附加功能,因此依賴于 LXC 工作。
LXD 與 Docker 的主要區別如下。與 Docker 建議每個容器只有單個進程的設計模式不同,LXC/LXD 中的容器可以運行多個進程。此外,Docker 容器可移植性更強,為與 LXD 相比,Docker 有效地抽象了資源。最后,Docker 支持在 Windows 和 macOS 環境上運行,但 LXD 只支持 Linux。
3、containerd
containerd 是一個高級容器運行時,它通過在底層運行 runc 以提供操作系統和容器引擎之間的接口。runc 是一個支持 Windows 和 Linux 的守護進程,它抽象了特定于操作系統的功能,使運行和監督容器以及管理圖像傳輸和存儲變得更加容易。
?containerd 提供的這種抽象級別功能消除了進行若干低級系統調用的復雜性,使得容器的可移植性得以實現。然而,與 Docker 不同,containerd 不處理鏡像的構建或卷的創建。有趣的是,containerd 是 Docker 的默認運行時,現在它是一個獨立的工具,就像 runc 一樣。這也使得 containerd 像 Kubernetes 一樣成為一個方便的編排工具,containerd 也是最受歡迎的 Docker 替代品之一。
4、Buildah
Buildah 是紅帽基金會為容器化系統開發的一個 OCI 鏡像構建工具。它是一個提供類似于在 Docker 中運行 `docker build` 的功能的工具。Buildah 經常與 Podman 一起使用,互作補充,例如,Podman 在后臺使用 Buildah 功能的子集來實現其構建過程。
它可以從 Dockerfile 或 Containerfile 中構建鏡像,并生成與使用 Docker 創建的鏡像相同的鏡像,因為這些鏡像是符合 OCI 的。此外,它還提供了對鏡像層的細粒度控制,允許在一個單一層中進行多次修改提交。它還提供了從頭開始構建鏡像的能力,即不包含任何內容的鏡像,這讓用戶可以自由地只添加運行應用程序所需的軟件包。最后,與 Docker 不同的是,在 Buildah 中,用戶只能看到他們構建的鏡像。
5、BuildKit
BuildKit 是第二代構建鏡像的 Moby 項目,在較新的 Docker 版本中作為實驗性功能提供。與 Docker 一樣,它使用守護程序運行。不過,標準 Docker 構建和 BuildKit 之間的主要區別之一是,前者是逐層構建,后者提供并行構建處理。這個功能提高了性能,使構建速度更快。BuildKit 還允許跳過未使用的階段,改善增量構建,并允許無根構建。此外,BuildKit 使用一個緩存來減少重建圖像每一層的需要。
6、Kaniko
Kaniko 是一個谷歌鏡像構建工具,它可以從 Dockerfile 構建鏡像。它和 Buildah 一樣是無守護進程的,但更側重于在 Kubernetes 中構建鏡像。Kaniko 對于本地開發實例來說不是很方便,因為它通常作為鏡像與 Kubernetes 等容器編排器一起運行。對于 Kubernetes 集群中的持續集成和交付管道,Kaniko 可以成為一個實用的工具。
7、RunC
RunC 以前是嵌入到 Docker 架構中的一個模塊,在 2015 年作為獨立工具發布。此后,它成為一個廣泛使用的、標準化的、可互操作的容器運行時。DevOps 團隊可以將其作為 Docker 或其他定制容器引擎的一部分。RunC 屬于容器化生態系統中的容器運行時部分。容器運行時是處理容器運行的容器引擎中使用的較低級別的組件。
推薦學習:《docker視頻教程》