使用 Podman Desktop 在 Fedora Linux 上管理容器
從歷史上看,開發(fā)人員一直使用 Docker Desktop 對容器進(jìn)行圖形化管理。這適用于那些安裝了 Docker Daemon 和 Docker CLI 的人。然而,對于那些使用無守護進(jìn)程的 Podman 工具的人來說,雖然有一些 Podman 前端,如 ??Pods???、??Podman desktop companion??? 和 ??Cockpit??,但沒有官方應(yīng)用。現(xiàn)在不是這種情況了。有了 Podman Desktop!
本文將討論由紅帽和其他開源貢獻(xiàn)者開發(fā)的 Podman Desktop 的特性、安裝和使用。
安裝
要在 Fedora Linux 上安裝 Podman Desktop,請訪問 ??podman-desktop.io??,然后單擊 “Download for Linux” 按鈕。你將看到兩個選項:Flatpak 和 zip。在這個例子中,我們使用的是 Flatpak。單擊 “Flatpak” 鏈接后,通過雙擊文件在 GNOME 軟件中打開它(如果你使用的是 GNOME)。你也可以通過終端安裝它:
flatpak install podman-desktop-X.X.X.flatpak
在上面的命令中,將 X.X.X 替換為你下載的特定版本。如果你下載了 zip 文件,那么解壓縮存檔,然后啟動 Podman Desktop 應(yīng)用的二進(jìn)制文件。你還可以通過進(jìn)入 GitHub 上項目的 ??發(fā)布?? 頁找到預(yù)發(fā)布版本。
特性
Podman Desktop 仍處于早期階段。然而,它支持許多常見的容器操作,如創(chuàng)建容器鏡像、運行容器等。此外,你可以在 “首選項Preferences” 的 “擴展Extensions” 部分下找到 Podman 擴展,你可以使用它來管理 macOS 和 Windows 上的 Podman 虛擬機。
此外,Podman Desktop 支持 Docker Desktop 擴展。你可以在 “首選項Preferences” 下的 “Docker Desktop Extensions” 安裝此類擴展。應(yīng)用窗口有兩個窗格。左側(cè)窄窗格顯示應(yīng)用的不同功能,右側(cè)窗格是內(nèi)容區(qū)域,它將根據(jù)左側(cè)選擇的內(nèi)容顯示相關(guān)信息。
Podman Desktop 0.0.6 在 Fedora 36 上運行
演示
為了全面了解 Podman Desktop 的功能,我們將從 Dockerfile 創(chuàng)建一個鏡像并將其推送到注冊中心,然后拉取并運行它,這一切都在 Podman Desktop 中完成。
構(gòu)建鏡像
第一步是通過在命令行中輸入以下行來創(chuàng)建一個簡單的 Dockerfile:
cat <<EOF>>Dockerfile
FROM docker.io/library/httpd:2.4
COPY . /var/www/html
WORKDIR /var/www/html
CMD ["httpd", "-D", "FOREGROUND"]
EOF
現(xiàn)在,點擊 “鏡像Images” 并按下 “構(gòu)建鏡像Build Image” 按鈕。你將被帶到一個新頁面以指定 Dockerfile、構(gòu)建上下文和鏡像名稱。在 Containerfile 路徑下,單擊并瀏覽以選擇你的 Dockerfile。在鏡像名稱下,輸入鏡像的名稱。如果要將鏡像推送到容器注冊中心,那么可以以 ??example.com/username/repo:tag?
? 形式指定完全限定的鏡像名稱(FQIN)。在此示例中,我輸入 ??quay.io/codezombie/demo-httpd:latest?
?,因為我在 ??quay.io?
? 上有一個名為 ??demo-httpd?
? 的公共倉庫。你可以按照類似的格式來指定容器注冊中心(Quay、Docker Hub、GitHub Container Registry 等)的 FQIN。現(xiàn)在,按下 “構(gòu)建Build” 按鈕并等待構(gòu)建完成。
推送鏡像
構(gòu)建完成后,就該推送鏡像了。所以,我們需要在 Podman Desktop 中配置一個注冊中心。進(jìn)入 “首選項Preferences” -> “注冊中心Registries” 并按下 “添加注冊中心Add registry” 按鈕。
添加注冊中心對話框
在 “添加注冊中心Add registry” 對話框中,輸入你的注冊中心服務(wù)器地址和用戶憑據(jù),然后單擊 “添加注冊中心Add registry”。
現(xiàn)在,回到鏡像列表中我的鏡像,并按下上傳圖標(biāo)將其推送到倉庫。當(dāng)你將鼠標(biāo)懸停在設(shè)置中添加的注冊中心名稱開頭的鏡像名稱上時(此演示中的 ??quay.io?
?),鏡像名稱旁邊會出現(xiàn)一個推送按鈕。
將鼠標(biāo)懸停在鏡像名稱上時出現(xiàn)的按鈕
鏡像通過 Podman Desktop 推送到倉庫
鏡像被推送后,任何有權(quán)訪問鏡像倉庫的人都可以拉取它。由于我的鏡像倉庫是公開的,因此你可以輕松地將其拉入 Podman Desktop。
拉取鏡像
因此,為確保一切正常,請在本地刪除此鏡像并將其拉入 Podman Desktop。在列表中找到鏡像并按刪除圖標(biāo)將其刪除。刪除鏡像后,單擊 “拉取鏡像Pull Image” 按鈕。在 “要拉取的鏡像Image to Pull” 輸入完全限定名稱,然后按 “拉取鏡像Pull Image”。
Our container image is successfully pulled
創(chuàng)建一個容器
作為 Podman Desktop 演示的最后一部分,讓我們從鏡像中啟動一個容器并檢查結(jié)果。轉(zhuǎn)到 “容器Containers” 并按 “創(chuàng)建容器Create Container”。這將打開一個包含兩個選項的對話框:“從 Containerfile/DockerfileFrom Containerfile/Dockerfile” 和 “從已有鏡像From existing image”。按下 “從已有鏡像From existing image”。這將進(jìn)入鏡像列表。在那里,選擇我們要拉取的鏡像。
在 Podman Desktop 中創(chuàng)建容器
現(xiàn)在,我們從列表中選擇我們最近拉取的鏡像,然后按它前面的 “運行Play” 按鈕。在出現(xiàn)的對話框中,我輸入 ??demo-web?
? 作為容器名,輸入 ??8000?
? 作為端口映射,然后按下 “啟動容器Start Container”。
Container configuration
容器開始運行,我們可以通過運行以下命令檢查 Apache 服務(wù)器的默認(rèn)頁面:
curl http://localhost:8000
可以工作!
你還應(yīng)該能夠在容器列表中看到正在運行的容器,其狀態(tài)已更改為 “運行中Running”。在那里,你會在容器前面找到可用的操作。例如,你可以單擊終端圖標(biāo)打開 TTY 進(jìn)入到容器中!
接下來是什么
Podman Desktop 還很年輕,處于 ??積極開發(fā)?? 中。 GitHub 上有一個項目 ??路線圖??,其中列出了令人興奮的按需功能,包括:
- Kubernetes 集成
- 支持 Pod
- 任務(wù)管理器
- 卷支持
- 支持 Docker Compose
- Kind 支持