岱军 云云众生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 應用程式部署虛擬機器的全部內容。