Podman(POD 管理器)是一款用于管理容器和镜像、挂载到这些容器中的卷以及由容器组组成的 Pod 的工具。Podman 在 Linux 上运行容器,但也可以在 Mac 和 Windows 系统上使用 Podman 管理的虚拟机。Podman 基于 libpod,这是一个用于容器生命周期管理的库,也包含在此存储库中。libpod 库提供用于管理容器、Pod、容器镜像和卷的 API。
Podman 每年发布 4 次主要版本或次要版本,分别在二月、五月、八月和十一月的第二周。补丁版本发布频率更高,可能随时发布,以便向用户提供错误修复。所有版本均经过 PGP 签名。获准发布版本的团队成员的公钥位于此处。
Podman 和 libpod 的总体范围如下:
Podman 可以轻松以普通用户身份运行,无需 setuid 二进制文件。在无根模式下运行时,Podman 容器会使用用户命名空间将容器中的根权限设置为运行 Podman 的用户。
无根模式的 Podman 运行锁定的容器,不具备运行容器的用户所不具备的权限。
其中一些限制可以解除(例如,通过 --privileged),但无根容器的权限永远不会高于启动它们的用户。如果您以普通用户身份运行 Podman 并从主机挂载到 /etc/passwd 中,您仍然无法更改它,因为您的用户没有权限。
几乎所有常规的 Podman 功能均可用,但也存在一些缺点。任何最新版本的 Podman 都应该能够在无 root 权限下运行,无需任何额外配置,但您的操作系统可能需要一些额外配置,详情请参阅安装指南。
在使用无 root 权限的 Podman 之前,管理员需要进行一些配置,必要的设置记录在此处。
Podman 桌面 为 Linux、Windows 和 Mac 设备上的 Podman 和 Kubernetes 提供了本地开发环境。它是一个功能齐全的 Podman 桌面 UI 前端,使用非 Linux 操作系统上的 podman machine 后端来运行容器。它支持完整的容器生命周期管理(构建、拉取和推送镜像,创建和管理容器,创建和管理 Pod,以及使用 Kubernetes YAML)。该项目在 GitHub 上开发,欢迎贡献。
Podman 在不同方面使用 OCI 项目和最佳库:
如需查看博客、发布公告等信息,请访问 podman.io 网站!
安装说明
有关如何在您的环境中安装 Podman 的信息。
OCI Hooks 支持
有关 Podman 如何配置 OCI Hooks 以在启动容器时运行的信息。
Podman API
Podman REST API 文档。
Podman 命令
Podman 命令列表,其中包含其手册页链接,许多情况下还包含演示命令使用的视频。
Podman 容器镜像
有关在 quay.io 上找到的 Podman 容器镜像的信息。
Podman 故障排除指南
Podman 常见问题及解决方案列表。
Podman 使用转移
与使用 Podman 的基础设施相关的运维和开发转移的有用信息。本页面包含显示 Docker 命令及其 Podman 等效命令的表格。
教程
Podman 使用教程。
远程客户端
Podman 远程客户端的简要使用方法。
在 Rootless 环境中 Podman 的基本设置和使用
本教程展示了运行 Rootless Podman 所需的设置和配置。
发行说明
Podman 最新版本的发行说明。
贡献
有关为此项目做出贡献的信息。
Buildah 和 Podman 是两个互补的开源项目,它们可在大多数 Linux 平台上使用,并且都位于GitHub.com,Buildah 位于此处,Podman 位于此处。Buildah 和 Podman 都是命令行工具,可用于构建开放容器倡议 (OCI) 镜像和容器。这两个项目在专业化方面各有不同。
Buildah 专注于构建 OCI 镜像。Buildah 的命令复制了 Dockerfile 中的所有命令。这允许构建使用或不使用 Dockerfile 的镜像,而无需任何 root 权限。Buildah 的最终目标是提供一个底层核心实用程序接口来构建镜像。无需 Dockerfile 即可灵活地构建镜像,
从而允许将其他脚本语言集成到构建过程中。Buildah 遵循简单的 fork-exec 模型,并且不以守护进程的形式运行,但它基于 Golang 的全面 API,可以集成到其他工具中。
Podman 专注于所有帮助您维护和修改 OCI 镜像的命令和功能,例如拉取和标记。它还允许您创建、运行和维护基于这些镜像创建的容器。对于通过 Dockerfile 构建容器镜像,Podman 使用 Buildah 的 Golang API,并且可以独立于 Buildah 安装。
Podman 和 Buildah 之间的主要区别在于它们的容器概念。Podman允许用户创建“传统容器”,这些容器的目的是长期存在。而 Buildah 容器的创建实际上只是为了允许将内容添加回容器镜像。简单来说,buildah run 命令模拟 Dockerfile 中的 RUN 命令,而 podman run 命令在功能上模拟 docker run 命令。由于这一点以及它们底层存储的差异,您无法在 Buildah 中看到 Podman 容器,反之亦然。
简而言之,Buildah 是一种创建 OCI 镜像的高效方法,而 Podman 允许您使用熟悉的容器命令行在生产环境中管理和维护这些镜像和容器。更多详情,请参阅 容器工具指南。
$ podman run quay.io/podman/hello
Trying to pull quay.io/podman/hello:latest...
Getting image source signatures
Copying blob a6b3126f3807 done
Copying config 25c667d086 done
Writing manifest to image destination
Storing signatures
!... Hello Podman World ...!
.--"--.
/ - - \
/ (O) (O) \
~~~| -=(,Y,)=- |
.---. /` \ |~~
~/ o o \~~~~.----. ~~
| =(X)= |~ / (O (O) \
~~~~~~~ ~| =(Y_)=- |
~~~~ ~~~| U |~~
Project: https://github.com/containers/podman
Website: https://podman.io
Documents: https://docs.podman.io
Twitter: @Podman_io