怎樣讓守護程序執行
碼頭工人
正如我們所知,容器化的發展始於 Docker,其中守護程序管理整個程序,併成為最流行和廣泛使用的容器管理系統。
但!您是否認為容器化只有一種工具,並且沒有比這更有效的容器化方法了。
在這個故事中,我們可以得到以下問題的答案:
a) 為什麼選擇 Docker?
b) 為什麼我們不應該使用 docker?
c) 我們有其他選擇嗎?
d) 我們什麼時候可以使用容器和影象來代替 docker images / docker 容器?
讓我們先從瞭解 docker 開始吧!
Docker 是一個軟體平臺,可讓您快速構建、測試和部署應用程式。Docker 將軟體打包成稱為容器的標準化單元,其中包含軟體執行所需的一切,包括庫、系統工具、程式碼和執行時。使用 Docker,您可以將應用程式快速部署和擴充套件到任何環境中,並且知道您的程式碼將執行。
我們也可以在某種程度上將 docker 容器假設為 VM,但堅持下去!
與硬體被虛擬化的虛擬機器不同,在 Docker 中,執行的容器共享主機作業系統核心。
碼頭工人架構:
讓我們瞭解一下 docker 主要元件:
Docker 守護程序:
一個持續的後臺程序,有助於管理/建立 Docker 映像、容器、網路和儲存卷。
Docker Engine REST API:
應用程式用來與 Docker 守護程序互動的 API;它可以被 HTTP 客戶端訪問。
Docker CLI:
用於與 Docker 守護程序或 Docker 命令互動的 Docker 命令列客戶端。
docker也有一些問題:
安全問題。
對於 Docker 操作,所有步驟都需要由 root 執行,即容器所需的特權升級。
如果任何時候 docker 守護程序失敗,所有子程序都會進入孤立狀態。
由於 Docker 在單個程序上執行,它可能導致單點故障。
到目前為止,我們已經瞭解了 Docker 的基礎知識,現在讓我們來了解一下 Podman!
播客:
Podman 是一個開源的 Linux 原生工具,旨在開發、管理和執行容器。作為 Red Hat 開發的使用者友好型容器編排器,Podman 是 RedHat 8 和 CentOS 8 中的預設容器引擎。
Podman也是一個
無
守護程序的容器引擎,用於在 Linux 系統上開發、管理和執行 OCI 容器。容器既可以以 root 身份執行,也可以在無 root 模式下執行。
Podman 是一組命令列工具
,旨在處理容器化過程的不同任務,可以作為模組化框架工作。該套件包括以下模組:
Podman
— pod 和容器映像管理器
Buildah
— 容器構建器的模組
Skopeo
—容器映像檢查模組
runc
— 容器執行器和功能構建器到 podman 和 buildah
crun
— 可選執行時,可為無根容器提供更大的靈活性、控制和安全性。
現在可以對 podman 有另一種想法,比如它是否可以與 k8s 一起使用?
是的,它可以。事實上,Kubernetes 和 Podman 在某些方面是相似的。
Podman 可以建立協同工作的容器“pod”,
這一功能類似於 Kubernetes pod
。Pod 以共同的名稱組織單獨的容器,以將它們作為單個單元進行管理。
在帶有 k8s 的 podman 中:
Pod 定義可以匯出到與 Kubernetes 相容的 YAML 檔案
,這使得開發人員可以共享資源,在 pod 內為同一個應用程式使用不同的容器:一個容器用於前端,另一個容器用於後端,以及一個數據庫
Podman 沒有守護程序
Podman 是對容器引擎的獨特理解,因為它實際上並不依賴於守護程序,而是將容器和 Pod 作為子程序啟動。
我們應該使用 podman 嗎?
Podman 作為開發和管理工具具有獨特的優勢,使其在適當的環境中成為 Docker 的可行且有趣的替代品。或者是與 Docker 並肩工作的強大補充,因為它支援與 Docker 相容的 CLI 介面。
暫時就這些了,學習愉快!
將附帶新的部落格敬請期待!