Docker 與 Podman 容器管理的比較

2021-10-11 09:06:52 字數 2108 閱讀 2203

翻譯自 paul ferrill 2023年9月1日的文章《compare docker vs. podman for container management》

1

docker 和 podman 在管理容器方面提供了類似的功能,但是 docker 的安全漏洞可能使 podman 對於某些管理員來說更具吸引力。

目前 docker 已經成為許多 it 管理員們事實上的標準,並且在開發人員中占有很大的份額。 但是,podman 由於具有以非特權使用者身份執行且無需守護程序的能力,因此與基本的 docker 相比,它為管理員們提供了一些安全上的優勢。

docker 和 podman 都提供許多相同的功能,例如,它們對開放式容器倡議(oci)2

的執行時和映象規範的支援,以及它們對映命令以建立和管理容器的能力。 但是,docker 和 podman 之間存在一些差異,包括安全方面的問題和對守護程式的依賴。3

考慮到 podman 不使用守護程序來開發、管理和執行 oci 容器,因此它必須在 linux os 上執行。 容器可以以 root 模式執行,也可以以非 root 執行模式執行。docker 利用乙個守護程序(該守護程序是乙個持久的後台程序)來處理主機上所有容器的管理職責。docker 依賴於客戶端/服務端(c/s)架構,守護程序扮演著服務端的角色,而客戶端通過命令列介面(cli)進行通訊。

docker 使用本機 windows 守護程序就可以很好地執行 windows 或基於 linux 的映象。podman 需要 windows subsystem for linux 版本2(wsl2)才能正常執行。 因此,管理員們必須有2023年5月以後的 windows 10 更新才能開始使用 podman,因為這是第乙個將 wsl2 作為更新的一部分的發行版。

docker 與 podman 之間的乙個重大區別涉及到安全問題。 docker 守護程序需要 root 許可權,這在向使用者提供 root 許可權時帶來了安全挑戰。 這也意味著配置不當的 docker 容器可以無限制地訪問主機檔案系統。管理員可以通過遵循一些基本的最佳實踐來防止這種情況發生,比如僅使用來自受信任的**商提供的容器映象,但這種可能性仍然存在。

但是,管理員們使用 podman 可以以非特權使用者啟動容器。這就使得 podman 在鎖定環境場景中具有了超越 docker 的優勢。 話雖如此,管理員們將無法以非特權使用者身份在主機系統上執行任何需要 root 許可權的命令。這包括對映主機上低於 1024 的任何特權埠號,以及預設的 http 埠號 80。

在容器編排方面,kubernetes 已經成為佔據主導地位的參與者。vmware 已採用 kubernetes 作為 vm 以及連線到執行中的容器的所有其他裝置的主要管理平台。 kubernetes 使用術語 pod 來定義共享某些資源的容器集合。podman 通過實現 pod 命令,將多個容器作為乙個實體進行管理,從而支援相同的概念。

同樣,docker 為容器編排提供了多個選項。docker swarm 是 docker 維護的用於管理集群的本地工具。docker 還與 kubernetes 整合得很好,這是大多數開發團隊的主流選擇。 對於 windows 部署,管理員可以選擇在安裝過程中啟用 kubernetes,從而可以從管理員的台式電腦或膝上型電腦直接訪問 kubernetes 命令。

更進一步來說,管理員可以圍繞持續整合和持續部署(ci/cd)模型構建他們的應用程式,在該模型中,開發和測試工作可以基於一些簡單的配置檔案在任何地方進行。當管理員準備將發布推送到生產環境時,只需執行幾個額外的步驟即可更改部署目標。

podman 和 docker 都符合 oci 映象標準,但僅就安全特性而言,podman 是值得一試的。podman 還提供了本地命令來支援 pod 的構建和測試,從而著眼於部署到乙個執行 kubernetes 的生產系統中。

作者 : paul ferrill

譯者 : 技術譯民

出品 : 技術譯站

鏈結 : 英文原文

compare docker vs. podman for container management ↩︎

oci ↩︎

docker vs podman ↩︎

docker映象與docker容器

映象與容器的關係 映象 例如系統安裝映象 已經裝好環境的虛擬機器 執行一次 就是乙個容器 新的作業系統 當作是容器的 源 如同物件導向中的類 容器 裝好的系統 乙個乙個的作業系統,或者是已經裝好東西的系統 如同物件導向的物件 docker search 包名 搜尋包 一般都是去hub.docker....

書籍 Docker 容器與容器雲

內容簡介 本書從實踐者的角度,在講解docker高階實踐技巧的同時,深入到源 層次,為讀者梳理出docker容器技術和基於docker的容器雲技術 如kubernetes 的實現方法和設計思路,幫助讀者理解如何在實際場景中利用docker解決問題並啟發新的思考。全書包括兩部分,第一部分深入解讀doc...

Docker 容器與映象

映象 image 即是一堆唯讀層視角檔案,上一層檔案指標指向至下一層,直到最底層檔案。參照如圖,左邊為詳細的檔案系統,右邊為該檔案系統的入口視角 docker映象利用 union fs 聯合檔案系統 的技術,將其設計為分層儲存的架構。上一層映象都是依賴於下一層映象上基礎上再增加的資源 配置等。簡單理...