使用 Podman 建立和使用虛擬機

岱军 云云众生s

Red Hat 的 Podman 不僅可以用來管理容器,而且對於建置和維護虛擬機器也很方便。

譯自Use Podman to Create and Work with Virtual Machines,作者 Jack Wallen。

當您想到Red Hat的 Podman 時,會想到一件事:容器。 這是因為Podman 被創建為用於建立和管理容器化應用程式和服務。

但是 Podman 還有另一個絕招。 在QEMU 模擬器的幫助下,Podman 能夠創建基本的 Fedora CoreOS 虛擬機,該虛擬機可用於容器、容器化工作負載或此類容器化應用程式的開發(只要它們在Fedora CoreOS領域內工作)。

對於不熟悉 Fedora CoreOS 的人來說,它是專門創建的,以優化運行容器化應用程式。 Fedora CoreOS 最初於 2003 年 11 月 6 日發布,此後一直在穩步增長。 顧名思義,Fedora CoreOS 在設計上保持在最低限度,因此它只包含您需要的內容。

Podman 讓部署 Fedora CoreOS 虛擬機器變得輕而易舉。 透過這樣做,您不必擔心從 Docker Hub 或任何其他第三方儲存庫中提取最新版本的 Fedora CoreOS。 這意味著虛擬機器是乾淨的。

但是,您如何開始使用這些虛擬機器? 讓我向您展示如何操作。

您需要什麼
要使用 Podman Machines,您需要一個基於 Ubuntu 的 Linux 發行版。 雖然基於 RHEL 的發行版上的 Podman 版本支援 Machines 指令,但目前無法安裝必要的 QEMU 軟體來使其運作。 這就是我將重點演示 Ubuntu 的原因。 您還需要一個具有sudo 權限的使用者才能進行安裝。

就是這樣。 讓我們來點 VM 魔術。

Ubuntu 沒有配備 Podman。 好消息是可以從標準儲存庫安裝它。 因此,登入您的 Ubuntu 系統,打開一個終端窗口,並使用以下命令安裝 Podman:

sudo apt-get install podman -y
系統會提示您輸入使用者密碼以獲得管理員權限。 安裝完成後,您需要安裝所需的 QEMU 軟體,使用以下命令完成:

sudo apt-get install qemu-system -y
完成後,您必須執行一個(或兩個)步驟。 首先,下載 gvproxy 檔案並使用以下命令將其儲存到正確的位置:

wget https://github.com/containers/podman-machine/releases/download/v0.1.0/gvproxy -O /usr/bin/gvproxy
最後,您需要確保載入了 KVM 核心模組,這表示您正在執行的機器必須支援 KVM。 可以使用以下方法之一完成此操作:

sudo modprobe kvm-intel
sudo modprobe kvm-amd
現在您可以繼續建立您的第一個 Fedora CoreOS 虛擬機器。

部署虛擬機
Podman 虛擬機器使用podman機器指令(以及各種選項)進行管理。 首先,使用以下命令查看目前機器:

podman machine list
您不應該看到列出的任何虛擬機,因為我們還沒有建立任何虛擬機。 若要建立您的第一個 VM,請使用下列命令對其進行初始化:

podman machine init
上述指令將建立一個具有隨機產生名稱的新 VM。 您也可以使用下列方法產生一個具有使用者指定名稱的 VM:

podman machine init NAME
其中 NAME 是您要部署的機器的名稱。

現在,如果您查看可用的 VM(使用命令 podman machine list),您應該會看到一個列出,名稱是隨機產生的還是使用者建立的。

假設您建立了一個名為 vm1 的新 VM。 若要啟動機器,請發出以下命令:

podman machine start vm1
虛擬機器將啟動,當您收到提示符號時,您就可以開始了。

SSH 到您的虛擬機
虛擬機正在運行,現在是時候訪問它了,這是透過 SSH 完成的。 在您嘗試執行標準 ssh 命令之前,這不是在這種情況下它的工作方式。 若要 SSH 到您的虛擬機,請執行以下命令:

podman machine ssh NAME
其中 NAME 是虛擬機器的名稱。 如果您在建立 VM 時沒有提供名稱,則可以簡單地發出以下命令:

podman machine ssh
此時,您會發現自己處於正在運行的虛擬機器中,您可以在其中開始開發您的容器化應用程式。 完成後,您可以使用以下命令退出該虛擬機器:

exit
最後,您可以使用以下命令停止虛擬機器:

podman machine stop
當然,如果您為虛擬機器指定了自訂名稱,則該命令應為:

podman machine stop NAME
其中NAME是您希望停止的虛擬機器的名稱。

您可以根據需要部署任意數量的虛擬機器。 但是,我建議您始終為虛擬機器指定一個唯一的識別名稱,以指示您正在建置的容器化應用程式或服務。

您也可以使用以下命令刪除虛擬機器:

podman machine rm NAME
其中NAME是您希望刪除的虛擬機器的名稱。

我的朋友們,這就是使用 Podman 應用程式部署虛擬機器的全部內容。