mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-01-01 21:50:13 +08:00
143 lines
7.6 KiB
Markdown
143 lines
7.6 KiB
Markdown
[#]: subject: "Manage containers on Fedora Linux with Podman Desktop"
|
||
[#]: via: "https://fedoramagazine.org/manage-containers-on-fedora-linux-with-podman-desktop/"
|
||
[#]: author: "Mehdi Haghgoo https://fedoramagazine.org/author/powergame/"
|
||
[#]: collector: "lkxed"
|
||
[#]: translator: "geekpi"
|
||
[#]: reviewer: " "
|
||
[#]: publisher: " "
|
||
[#]: url: " "
|
||
|
||
使用 Podman Desktop 在 Fedora Linux 上管理容器
|
||
======
|
||
![][1]
|
||
|
||
Podman Desktop 是一个开源 GUI 应用,用于在 Linux、macOS 和 Windows 上管理容器。
|
||
|
||
从历史上看,开发人员一直使用 Docker Desktop 对容器进行图形化管理。这适用于那些安装了 Docker Daemon 和 Docker CLI 的人。然而,对于那些使用 Podman daemon-less 工具的人来说,虽然有一些 Podman 前端,如 [Pods][2]、[Podman desktop companion][3] 和 [Cockpit][4],但没有官方应用。现在不是这种情况了。有了 Podman Desktop!
|
||
|
||
本文将讨论由 Red Hat 和其他开源贡献者开发的 Podman Desktop 的特性、安装和使用。
|
||
|
||
### 安装
|
||
|
||
要在 Fedora Linux 上安装 Podman Desktop,请访问 [podman-desktop.io][5],然后单击 *Download for Linux* 按钮。你将看到两个选项:Flatpak 和 zip。在这个例子中,我们使用的是 Flatpak。单击 *Flatpak* 后,通过双击文件在 GNOME 软件中打开它(如果你使用的是 GNOME)。你也可以通过终端安装它:
|
||
|
||
```
|
||
flatpak install podman-desktop-X.X.X.flatpak
|
||
```
|
||
|
||
在上面的命令中,将 X.X.X 替换为你下载的特定版本。如果你下载了 zip 文件,则、那么解压缩存档,然后启动 *Podman Desktop* 应用的二进制文件。你还可以通过进入 GitHub 上项目的[发布][6]页找到预发布版本。
|
||
|
||
### 特性
|
||
|
||
Podman Desktop 仍处于早期阶段。然而,它支持许多常见的容器操作,如创建容器镜像、运行容器等。此外,你可以在“首选项”的“扩展目录”下找到 Podman 扩展,你可以使用它来管理 macOS 和 Windows 上的 Podman 虚拟机。此外,Podman Desktop 支持 Docker Desktop 扩展。
|
||
|
||
你可以在“首选项”下的 “Docker Desktop Extensions” 安装此类扩展。应用窗口有两个窗格。左侧窄窗格显示应用的不同功能,右侧窗格是内容区域,它将根据左侧选择的内容显示相关信息。
|
||
|
||
![Podman Desktop 0.0.6 在 Fedora 36 上运行][7]
|
||
|
||
### 演示
|
||
|
||
为了全面了解 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。在镜像名称下,输入镜像的名称。如果要将镜像推送到容器注册表,那么可以以 example.com/username/repo:tag 形式指定完全限定的镜像名称 (FQIN)。在此示例中,我输入 quay.io/codezombie/demo-httpd:latest,因为我在 quay.io 上有一个名为 demo-httpd 的公共仓库。你可以按照类似的格式来指定容器注册表(Quay、Docker Hub、GitHub Container Registry 等)的 FQIN。现在,按*构建*并等待构建完成。
|
||
|
||
#### 推送镜像
|
||
|
||
构建完成后,就该推送镜像了。所以,我们需要在 Podman Desktop 中配置一个注册表。进入 Preferences->Registries 并按 *Add registry*。
|
||
|
||
![Add Registry 对话框][8]
|
||
|
||
在 “Add Registry” 对话框中,输入你的注册表服务器地址和用户凭据,然后单击 “ADD REGISTRY”。
|
||
|
||
现在,我回到镜像列表中的镜像,并按下上传图标将其推送到仓库。当你将鼠标悬停在设置中添加的注册表名称开头的镜像名称上时(此演示中的 quay.io),镜像名称旁边会出现一个推送按钮。
|
||
|
||
![将鼠标悬停在镜像名称上时出现的按钮][9]
|
||
|
||
![镜像通过 Podman Desktop 推送到仓库][10]
|
||
|
||
图像被推送后,任何有权访问镜像仓库的人都可以拉取它。由于我的镜像仓库是公开的,因此你可以轻松地将其拉入 Podman Desktop。
|
||
|
||
#### 拉取镜像
|
||
|
||
因此,为确保一切正常,请在本地删除此镜像并将其拉入 Podman Desktop。在列表中找到图像并按*删除*图标将其删除。删除图像后,单击 *Pull Image* 按钮。在 *Image to Pull* 输入完全限定名称,然后按 *Pull image*。
|
||
|
||
![Our container image is successfully pulled][11]
|
||
|
||
#### 创建一个容器
|
||
|
||
作为 Podman Desktop 演示的最后一部分,让我们从镜像中启动一个容器并检查结果。我转到 *Containers* 并按 *Create Container*。这将打开一个包含两个选项的对话框:*From Containerfile/Dockerfile* 和 *From existing image*。按下 *From existing image*。这将进入镜像列表。在那里,选择我们要拉取的图像。
|
||
|
||
![在 Podman Desktop 中创建容器][12]
|
||
|
||
现在,我们从列表中选择我们最近拉取的图像,然后按它前面的 *Play* 按钮。在出现的对话框中,我输入 demo-web 作为*容器名*,输入 8000 作为*端口映射*,然后按下 *Start Container*。
|
||
|
||
![Container configuration][13]
|
||
|
||
容器开始运行,我们可以通过运行以下命令检查 Apache 服务器的默认页面:
|
||
|
||
```
|
||
curl http://localhost:8000
|
||
```
|
||
|
||
![可以工作!][14]
|
||
|
||
你还应该能够在容器列表中看到正在运行的容器,其状态已更改为 *Running*。在那里,你会在容器前面找到可用的操作。例如,你可以单击终端图标打开 TTY 进入到容器中!
|
||
|
||
![][15]
|
||
|
||
### 接下来是什么
|
||
|
||
Podman Desktop 还很年轻,处于[积极开发][16]中。 GitHub 上有一个项目[路线图][17],其中列出了令人兴奋的按需功能,包括:
|
||
|
||
* Kubernetes 集成
|
||
* 支持 Pod
|
||
* 任务管理器
|
||
* 卷支持
|
||
* 支持 Docker Compose
|
||
* Kind 支持
|
||
|
||
--------------------------------------------------------------------------------
|
||
|
||
via: https://fedoramagazine.org/manage-containers-on-fedora-linux-with-podman-desktop/
|
||
|
||
作者:[Mehdi Haghgoo][a]
|
||
选题:[lkxed][b]
|
||
译者:[geekpi](https://github.com/geekpi)
|
||
校对:[校对者ID](https://github.com/校对者ID)
|
||
|
||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||
|
||
[a]: https://fedoramagazine.org/author/powergame/
|
||
[b]: https://github.com/lkxed
|
||
[1]: https://fedoramagazine.org/wp-content/uploads/2022/09/podman-desktop-on-fedora-816x345.jpg
|
||
[2]: https://github.com/marhkb/pods
|
||
[3]: https://github.com/iongion/podman-desktop-companion
|
||
[4]: https://github.com/cockpit-project/cockpit/
|
||
[5]: https://podman-desktop.io/
|
||
[6]: https://github.com/containers/podman-desktop/releases/
|
||
[7]: https://fedoramagazine.org/wp-content/uploads/2022/08/pd.png
|
||
[8]: https://fedoramagazine.org/wp-content/uploads/2022/08/registry.png
|
||
[9]: https://fedoramagazine.org/wp-content/uploads/2022/08/image.png
|
||
[10]: https://fedoramagazine.org/wp-content/uploads/2022/08/Screenshot-from-2022-08-27-23-51-38.png
|
||
[11]: https://fedoramagazine.org/wp-content/uploads/2022/08/image-2.png
|
||
[12]: https://fedoramagazine.org/wp-content/uploads/2022/08/image-3.png
|
||
[13]: https://fedoramagazine.org/wp-content/uploads/2022/08/image-5.png
|
||
[14]: https://fedoramagazine.org/wp-content/uploads/2022/08/image-6.png
|
||
[15]: https://fedoramagazine.org/wp-content/uploads/2022/09/image-2-1024x393.png
|
||
[16]: https://github.com/containers/podman-desktop
|
||
[17]: https://github.com/orgs/containers/projects/2
|