如何在 Windows 使用 Podman Desktop 取代 Docker Desktop

张善友發表於2024-07-07

Podman Desktop 是 Docker Desktop 的免費替代品,是本地開發使用的另一個絕佳選擇。它提供了類似的功能集,同時保持完全開源,讓您避免使用 Docker 產品的許可問題。在本文中,您將學習如何安裝和開始使用 Podman Desktop 來執行容器並部署到 Kubernetes。如果您以前使用過 Docker Desktop,這種體驗會很熟悉,但重新使用它也應該很快。

什麼是 Podman 桌面?

Podman 是一個 OCI 容器引擎,您可以使用它來代替 Docker。 Podman的特點如下:

  • 支援 Daemonless 的容器引擎,沒有單點故障問題。
  • 支援 Rootless 模式,無需 Root 許可權即可啟動容器。
  • Podman CLI 有意與 Docker 的相似;您可以透過簡單地用 podman 代替 docker 來轉換大多數命令,例如 podman runpodman push
  • 提供類似 Docker Compose 的指令,如 Podman Compose。
  • 提供類似 Docker Desktop 的管理介面,Podman Desktop 是 Podman 功能的官方圖形介面,您可以使用 Desktop 方便地與工作站上的容器和相關資源進行互動。
  • 支援使用 docker.io 作為映象儲存庫
  • Apache 開源授權,不用擔心商業授權問題。
  • 支援 Kubernetes,輕鬆地將本地容器設定過渡到 Kubernetes 環境。

入門

在開始使用 Podman Desktop 之前,請確保您已經安裝了常規的 Podman CLI。 Desktop 需要檢測 CLI 來管理您的容器。您可以在 Podman 文件中找到詳細的安裝說明。Podman在Windows上的使用主要依賴於Windows Subsystem for Linux(WSL),這使得在Windows環境下也能執行Linux容器。Podman為Windows提供了一個原生的命令列介面(CLI),並嵌入了一個用於啟動容器的Linux系統作為Podman機器。這個機器透過podman machine命令進行管理。在Windows上,每個Podman機器都由一個虛擬化的WSLv2發行版支援。Podman命令可以直接從Windows PowerShell(或CMD)提示符中執行,與在WSL環境中執行的podman服務進行遠端通訊。另外,如果你更喜歡Linux提示符和Linux工具,也可以直接從WSL例項中訪問Podman。除了命令列訪問外,Podman還監聽Docker API客戶端,支援直接使用基於Docker的工具和從您選擇的語言進行程式設計訪問。更詳細內容參見:https://podmancn.pages.dev/docs/tutorials/podman-for-windows.

此外,建議使用現代的“Windows Terminal”,它提供了比標準PowerShell和CMD提示符更優越的使用者體驗,以及WSL提示符(如果需要)。可以透過Windows Store搜尋或執行以下winget命令來安裝它:

winget install Microsoft.WindowsTerminal


安裝Podman


安裝Windows Podman客戶端的開始步驟是下載Podman Windows安裝程式。Windows安裝程式是隨每個Podman發行版一起構建的,可以從官方的GitHub發行頁面下載。

image

下載完成後,只需執行EXE檔案,並重新啟動一個新的終端。此後,podman.exe將出現在你的PATH中,你將能夠執行podman machine init命令來建立你的第一臺機器。

image

安裝完成後,開啟 PowerShell 命令列,執行:

podman -v

如果顯示出正確的版本號即安裝成功,繼續下一步操作

在 PowerShell 命令列中執行:

podman machine start

出現類似的內容說明已經完成了 Podman 的安裝,可以正常使用 podman run 等命令:

image

接下來,從專案網站下載最新的 Podman Desktop 版本,具體參考文件:https://podman-desktop.io/docs/installation/windows-install

現在您可以啟動 Podman Desktop。您應該會看到 Podman 已成功檢測到。主螢幕還將顯示系統上可用的任何其他容器環境,例如安裝的Docker引擎。

image

探索 Podman 桌面

Podman Desktop 的介面分為五個主要部分,您可以使用左側邊欄在它們之間切換。還有一個單獨的設定選單,可在側邊欄底部訪問,您可以在其中配置容器引擎、啟用 HTTP 代理並提供影像登錄檔憑據。

執行容器

容器選項卡是您花費大部分時間的地方。它顯示您的環境中存在的所有容器。要建立新容器,請按右上角的紫色“建立容器”按鈕。

image

系統將提示您在構建 Containerfile 或 Dockerfile 或從現有映像啟動容器之間進行選擇:

image

如果選擇“From Containerfile/Dockerfile”,則需要透過單擊下一個螢幕上的“Containerfile path”輸入來選擇檔案的路徑。您可以使用任何現有的 Dockerfile; Containerfile 術語只是一種更通用的替代方法。在“Image Name”欄位中為您的影像提供初始標籤,然後按“Build”按鈕構建您的映象,很容易就可以構建多平臺映象,Platform可以勾選各個平臺來構建多平臺容器映象。

image

構建命令的輸出將顯示在嵌入式終端視窗中。單擊完成按鈕繼續。您將被帶到映象螢幕,您的新映象將在其中顯示。如果您選擇不構建新映象,則在容器建立對話方塊中按下“來自現有映象”按鈕後,您將進入映象螢幕。

接下來,將滑鼠懸停在任何映象上,然後單擊出現在螢幕右側的播放按鈕:

image

image

現在您可以配置新容器例項的屬性。為您的容器指定一個名稱,安裝您需要的任何卷,並在“基本”選項卡上設定環境變數:

image

Advanced 選項卡允許您附加 TTY,設定容器執行的使用者,並更改將應用的重啟策略:

image

網路配置容器的網路堆疊,包括其主機名、/etc/hosts 檔案條目和 DNS 配置:

image

最後,Security 選項卡可以讓你啟用特權模式(如果你知道你需要它),修改容器的核心功能,並在你期望一個不可變的環境時指定一個只讀檔案系統:

image

完成容器配置後,單擊螢幕底部的紫色“啟動容器”按鈕執行它。它會重新顯示在容器螢幕上。

image

管理容器

將滑鼠懸停在容器上會顯示可讓您停止或刪除它們的操作。您還可以使用左側的核取方塊來選擇多個容器並批次應用操作。單擊最右側的三個點按鈕會顯示一個包含更多選項的溢位選單。在這裡,您可以立即重啟容器,或快速啟動終端會話。

image

單擊任何容器以檢視其詳細資訊。這會產生一個選項卡式介面,您可以在其中訪問容器的日誌、podman inspect 輸出和終端會話。

image

管理映象

映象以類似的方式管理。單擊任何映象以訪問其詳細資訊,包括其 podman inspect 輸出和圖層歷史記錄。

image

單擊影像螢幕右上角的“pull”按鈕,將新的遠端映象拉入您的環境。系統會提示您輸入要提取的影像,例如 ubuntu:latest

image

要在私有 registry 中使用映象,您需要先設定身份驗證憑據。按“拉取映象”螢幕上的“管理登錄檔”按鈕,或導航至“設定”>“新增登錄檔”,然後按右下角的“新增登錄檔”按鈕。輸入登錄檔的主機名並提供您的使用者名稱和密碼。單擊登入按鈕進行身份驗證。

image

管理卷

Volumes 螢幕提供了您建立的所有持久卷的概覽,包括它們的年齡和總大小:

image

使用 Kubernetes

Podman 整合了 Kubernetes 支援。這顯示在 Podman Desktop 的 Pod 螢幕中。 Podman 中的 Pod 相當於 Kubernetes Pod,是多個容器組合在一起的集合。要部署 Pod,請單擊右上角的“Play Kubernetes YAML”按鈕。

image

Pod 仍然是在 Podman 中執行的容器。要部署到 真實 Kubernetes 叢集,請展開 Pod 的三點選單並選擇“部署到 Kubernetes”操作。

在下一個螢幕上,選擇是否將 hostPort 繫結替換為 Kubernetes 服務。這更安全,因為它可以防止 Pod 直接繫結到叢集節點上的埠。單擊“部署”將 Pod 啟動到活動的 Kubernetes 叢集中,如 ~.kube/config 檔案所定義。您可以在設定選單中選擇不同的叢集連線。

image

Podman Desktop 結合了在本地容器和 Kubernetes 叢集之間移動的便利功能。容器詳細資訊螢幕上的“Kube”選項卡為您環境中的任何容器提供自動生成的 Kubernetes YAML 檔案,使您無需手動編寫清單即可進行部署。

安裝擴充套件

Podman Desktop 支援大多數 Docker Desktop 擴充套件,因此您可以新增自定義功能。擴充套件作為容器映象分發,其中包含專門準備的內容。找到要使用的擴充套件程式後,透過前往“設定”>“桌面擴充套件程式”將其新增到 Podman Desktop。

image

我們來安裝一個Padman AI Lab,安裝完成後就會出現在Installed列表中,同時你還會看到側邊欄中出現一個新圖示,看起來像 Android 頭部的頂部。

image


概括

Podman Desktop 是用於管理 Podman 容器環境的圖形工具。您可以與機器上的容器、影像和捲進行互動,部署 Kubernetes 清單並監控日誌,所有這些都在一個介面中完成。 Podman Desktop 還與 Docker Desktop 擴充套件相容,因此您可以訪問由更廣泛的容器生態系統開發的其他整合。這些功能意味著 Podman Desktop 通常可以用作 Docker Desktop 的直接替代品。

相關文章