本指南解释了什么是 Podman、它的特性、Podman 容器和镜像之间的区别,以及如何在 Linux 操作系统中安装 Podman。
什么是 Podman?
Podman,全称 POD MANager,是一个命令行、开源的容器管理实用程序,基于 libmod
图书馆。
Podman 允许您创建、开发和管理 Open Container Initiative (OCI) 容器和映像、安装到这些容器中的卷以及从容器组创建的 pod。
Podman 用法与 Docker 相同
Podman 类似于 码头工人 在使用方面。 Podman 提供了与 Docker 相同的命令集。 如果您已经熟悉 Docker,则不会有太大的不同。
Podman 还支持 REST API,提供与 Docker 兼容的接口以及公开高级 Podman 功能的改进接口。
尽管 Podman 提供了与 Docker 类似的接口,但它还是有一些显着差异。 两个显着特点是: 无根模式 和 豆荚.
无根模式
与 Docker 不同,Podman 不需要守护进程。 它是一个无守护(无根)容器管理工具。
Podman 不需要超级用户权限来运行容器。 容器可以作为 root
或以普通用户的无根模式。
当您以非 root 用户身份运行 Podman 时,它会创建一个用户命名空间,并在其中获取 root 权限。 这允许它挂载文件系统并设置所需的容器。 换句话说,Podman 容器使用用户命名空间将容器中的 root 设置为运行 Podman 的用户。
运行无根 Podman 可以提高安全性。 即使容器引擎或运行时受到威胁,因为攻击者不会对您的系统拥有 root 权限。
它还允许多个非特权用户在同一台机器上运行容器。 Docker 现在有 无根 模式支持。 然而,Podman 在 Docker 之前就有这个功能。
豆荚
Podman 的另一个显着优势是您可以创建容器组。 我们称它们为 Pod。 在 Podman 中,容器可以形成一起运行的“pod”。
Podman 为管理多个容器(即 Pod)提供了强大的支持。 此功能在其他容器运行时工具中不可用。
符合 OCI 标准的图像
Podman 创建的镜像遵循 OCI 标准,因此 Podman 镜像与 Docker 等其他容器运行时工具完全兼容。
您可以在容器注册表中发布新构建的图像,例如 码头 或者 码头工人中心 与世界分享它们。 任何人都可以下载、使用甚至改进它们。
系统就绪
Podman 在构建时考虑了 systemd。 含义 – Podman 可以通过 systemd 单元进行控制。 它还支持容器中的 systemd,开箱即用。
免费和开源!
Podman 是由 Red Hat 开发的免费的 Linux 原生工具,它应该可以在其他 Linux 发行版上完美运行。
在我们安装 Podman 之前,让我简要介绍一下镜像和容器。 这两者密切相关,但又截然不同。
容器与图像
Image 是决定 Container 应该如何表现的文件,而 Container 是 Image 的运行或停止阶段。
您可以使用同一个镜像运行多个容器。 容器与主机的其余文件隔离。
当我们运行 Container 时,它使用 Image 提供的隔离文件系统。 映像包含运行应用程序所需的一切——所有依赖项、配置、脚本、二进制文件等。
Image 还包含 Container 的其他配置,例如环境变量、运行的默认命令和其他元数据。
以下来自官方 Docker 文档的摘录提供了对容器和镜像的清晰简洁的解释。
容器和图像之间的主要区别在于顶部可写层。 容器正在运行具有顶层可写层的 Docker 镜像实例。 容器运行实际的应用程序。 容器包括应用程序及其所有依赖项。 当容器被删除时,可写层也被删除。 底层图像保持不变
https://docs.docker.com/storage/storagedriver/#container-and-layers
您可以使用列出本地可用的图像 podman images
命令和容器使用 podman ps
命令。 我们将在即将发布的指南中了解有关 Podman 命令的更多信息。
在 Linux 中安装 Podman
Podman 预装在 Fedora 核心操作系统, Fedora 银蓝和 Fedora 34. 如果您使用这些发行版中的任何一种,则无需安装 Podman。
Podman 为许多现代 Linux 操作系统打包,并在默认存储库中可用。
要在 Alpine Linux 中安装 Podman,请运行:
$ sudo apk add podman
在 Arch Linux、EndeavourOS 和 Manjaro Linux 中安装 Podman:
$ sudo pacman -S podman
在 Debian、Ubuntu、Pop_OS 中安装 Podman!:
$ sudo apt install podman
在 CentOS 8 中安装 Podman, Fedora 33 岁及以上,RHEL 8、AlmaLinux 8 和 Rocky Linux 8:
$ sudo dnf install podman
在 openSUSE 中安装 Podman:
$ sudo zypper install podman
要检查已安装的 Podman 版本,请运行:
$ podman -v podman version 3.2.2
阅读下一篇:
通过实际示例了解 Podman 基础知识以及如何在 Linux 中开始使用 Podman:
- Podman 教程 – Podman 入门
在线使用 Podman
如果您没有 Linux 或不想安装 Podman,您可以使用 Katacoda,这是一个在线平台,它提供了许多沙盒环境来学习和使用不同类型的技术。
要直接从浏览器使用 Podman 而无需在系统上安装它,请转到以下链接。
结论
在这个简短的指南中,我们了解了 Podman 是什么以及它与其他容器运行时(例如 Docker)有何不同。 我们还讨论了 Container 和 Image 之间的区别。 最后,我们看到了如何在各种 Linux 发行版中安装 Podman。
资源: