有類似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 所基於的整個堆疊的一個或多個部分。
在此期間,出現了新的容器標準,容器生態系統朝著不同方向發展。現在除了 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 是一個Google映像建置工具,它可以從 Dockerfile 建立映像。它和 Buildah 一樣是無守護程式的,但更專注於在 Kubernetes 中建立鏡像。 Kaniko 對於本地開發實例來說不是很方便,因為它通常作為鏡像與 Kubernetes 等容器編排器一起運行。對於 Kubernetes 叢集中的持續整合和交付管道,Kaniko 可以成為一個實用的工具。
7、RunC
RunC 以前是嵌入到 Docker 架構中的一個模組,在 2015 年作為獨立工具發布。此後,它成為一個廣泛使用的、標準化的、可互通的容器運行時。 DevOps 團隊可以將其作為 Docker 或其他客製化容器引擎的一部分。 RunC 屬於容器化生態系中的容器運作時部分。容器運作時是處理容器運作的容器引擎中所使用的較低層級的元件。
推薦學習:《docker影片教學》
以上是有類似docker的軟體嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!