管理容器 Fedora 带有 Podman 桌面的 Linux

Podman Desktop 是一个开源 GUI 应用程序,用于在 Linux、macOS 和 Windows 上管理容器。

从历史上看,开发人员一直使用 Docker Desktop 对容器进行图形化管理。 这适用于那些安装了 Docker Daemon 和 Docker CLI 的人。 然而,对于那些使用 Podman 无守护程序工具的人来说,虽然有一些 Podman 前端,例如 豆荚, Podman 桌面伴侣, 和 座舱,没有正式申请。 现在不是这种情况了。 Enter 播客桌面!

本文将讨论由 Red Hat 和其他开源贡献者开发的 Podman Desktop 的特性、安装和使用。

安装

在上安装 Podman Desktop Fedora Linux,前往 podman-desktop.io,然后单击下载 Linux 按钮。 您将看到两个选项:Flatpak 和 zip。 在这个 example 我们正在使用 Flatpak。 单击 Flatpak 后,通过双击文件在 GNOME 软件中打开它(如果您使用的是 GNOME)。 您也可以通过终端安装它:

flatpak install podman-desktop-X.X.X.flatpak

在上述命令中,将 XXX 替换为您下载的特定版本。 如果您下载了 zip 文件,则解压缩存档,然后启动 Podman Desktop 应用程序二进制文件。 您还可以通过访问项目的 发布 GitHub 上的页面。

特征

Podman Desktop 仍处于早期阶段。 然而,它支持许多常见的容器操作,如创建容器镜像、运行容器等。此外,您可以在 Preferences 的 Extensions Catalog 下找到一个 Podman 扩展,您可以使用它来管理 macOS 和 Windows 上的 Podman 虚拟机。 此外,Podman Desktop 支持 Docker Desktop 扩展。

您可以在 Preferences 下的 Docker Desktop Extensions 部分安装此类扩展。 应用程序窗口有两个窗格。 左侧窄窗格显示应用程序的不同功能,右侧窗格是内容区域,它将根据左侧选择的内容显示相关信息。

Podman Desktop 0.0.6 运行于 Fedora 36

演示

为了全面了解 Podman Desktop 的功能,我们将从 Dockerfile 创建一个映像并将其推送到注册表,然后拉取并运行它,这一切都在 Podman Desktop 中完成。

构建镜像

第一步是通过在命令行中输入以下行来创建一个简单的 Dockerfile:

cat <<EOF>>Dockerfile
FROM docker.io/library/httpd:2.4
COPY . /var/www/html 
WORKDIR /var/www/html 

CMD ["httpd", "-D", "FOREGROUND"]
EOF

现在,转到图像部分并按构建图像按钮。 您将被带到一个新页面以指定 Dockerfile、构建上下文和映像名称。 在 Containerfile 路径下,单击并浏览以选择您的 Dockerfile。 在图像名称下,输入图像的名称。 您可以在表单中指定完全限定的图像名称 (FQIN) example.com/username/repo:tag 如果要将映像推送到容器注册表。 在这个 example,我输入 quay.io/codezombie/demo-httpd:latest,因为我在 quay.io 上有一个名为 demo-httpd 的公共存储库。 您可以按照类似的格式来指定指向您的容器注册表(Quay、Docker Hub、GitHub 容器注册表等)的 FQIN。 现在,按 Build 并等待构建完成。

推送图片

构建完成后,就可以推送镜像了。 所以,我们需要在 Podman Desktop 中配置一个注册表。 转到首选项、注册表并按添加注册表。

添加注册表对话框

在“添加注册表”对话框中,输入您的注册表服务器地址和用户凭据,然后单击“添加注册表”。

现在,我回到图像列表中的图像,并通过按上传图标将其推送到存储库。 当您将鼠标悬停在以设置中添加的注册表名称开头的图像名称上时(此演示中的 quay.io),图像名称旁边会出现一个按钮。

将鼠标悬停在图像名称上时出现的按钮
通过 Podman Desktop 推送到存储库的图像

一旦图像被推送,任何有权访问图像存储库的人都可以拉取它。 由于我的图像存储库是公开的,因此您可以轻松地将其拉入 Podman Desktop。

拉取镜像

因此,为确保一切正常,请在本地删除此映像并将其拉入 Podman Desktop。 在列表中找到图像并按删除图标将其删除。 删除图像后,单击“拉图像”按钮。 Enter Image to Pull 部分中的完全限定名称,然后按 Pull image。

我们的容器镜像拉取成功

创建一个容器

作为 Podman Desktop 演示的最后一部分,让我们从镜像中启动一个容器并检查结果。 我去容器并按创建容器。 这将打开一个包含两个选项的对话框:来自 Containerfile/Dockerfile 和来自现有图像。 按从现有图像。 这会将我们带到图像列表。 在那里,选择我们提取的图像。

在 Podman Desktop 中创建容器

现在,我们从列表中选择我们最近提取的图像,然后按它前面的播放按钮。 在出现的对话框中,我输入 demo-web 作为 Container Name,输入 8000 作为 Port Mapping,然后按 Start Container。

容器配置

容器开始运行,我们可以查看我们的 Apache 服务器的默认页面通过运行以下命令:

curl https://localhost:8000 
有用!

您还应该能够在 Containers 列表中看到正在运行的容器,其状态已更改为 Running。 在那里,您会在容器前面找到可用的操作。 为了 example,你可以点击终端图标打开一个TTY进入容器!

在 Podman Desktop 中显示正在运行的容器 demo-web 以及容器的可用操作

接下来是什么

Podman Desktop 还很年轻 积极发展. 有一个项目 路线图 在 GitHub 上列出令人兴奋的按需功能,包括:

  • Kubernetes 集成
  • 对 Pod 的支持
  • 任务管理器
  • 卷支持
  • 支持 Docker Compose
  • 亲切的支持