Podman 简介#
Podman 控制的容器可以由 root
用户或非特权用户运行。Podman 使用 libpod
库管理整个容器生态系统,包括 pods、容器、容器镜像和容器卷。Podman 专门负责所有帮助你维护和修改 OCI 容器镜像的命令和功能,如拉取和标记。它允许你在生产环境中创建、运行和维护这些容器和容器镜像。
有一个 RESTful API 用于管理容器。我们还有一个远程 Podman 客户端,可以与 RESTful 服务进行交互。我们目前支持在 Linux、Mac 和 Windows 上的客户端。RESTful 服务仅在 Linux 上受支持。
如果你是容器技术的新手,建议你查看入门介绍。对于高级用户或那些从 Docker 转来的用户,请查看教程。对于高级用户和贡献者,你可以通过查看我们的命令页获取关于 Podman 命令行界面(CLI)的非常详细的信息。最后,对于希望了解如何与 Podman API 交互的开发者,请参阅 API 文档参考。
Podman 快速上手#
安装见 installation 或者直接使用 conda 安装 podman
conda install -c conda-forge go
conda install -c conda-forge podman
sudo apt update
sudo apt install newuidmap
conda install -c bioconda pasta
容器简化了应用程序的生产、分发、可发现性和使用,以及所有依赖项和默认配置文件。用户可以通过一两个命令来测试驱动或部署一个新应用程序,而不是遵循数页的安装说明。以下是如何找到你的第一个容器镜像:
podman search docker.io/busybox
上一条命令返回 DockerHub 上公开可用的容器镜像列表。这些容器镜像易于使用,但质量和维护程度各不相同。让我们使用列表中的第一个,因为它似乎维护得很好。
要运行 busybox
容器镜像,只需简单的命令:
podman run -it docker.io/library/busybox
可以在 busybox
容器中探索一段时间,但你很快就会发现,运行只包含少量 Linux 工具的小型容器所提供的价值有限。
有一句老话说,“没有人会仅仅为了运行操作系统而去运行操作系统”,对于容器来说也是一样。真正有趣和有价值的是运行在操作系统之上或容器中的工作负载。
有时我们可以找到公开可用的容器镜像,正好符合我们寻找的工作负载,而且已经按照我们想要的方式进行了打包。但是,通常情况下,我们总有一些想要添加、删除或定制的东西。这可能像安全或性能的配置设置那样简单,或者像添加复杂工作负载那样复杂。无论哪种方式,容器都使我们能够相当容易地进行我们需要的更改。
容器镜像实际上并不是图像,它们通常是由多个层组成的仓库。这些层可以通过使用 Containerfile(Dockerfile)轻松地添加、保存和与他人共享。这个单一文件通常包含了构建新容器镜像所需的所有指令,并且可以使用像GitHub这样的工具轻松地与他人公开共享。
下面是一个示例,展示了如何使用 Nginx 维护并在 GitHub 上发布的 Dockerfile,在 Debian 基础映像上构建 Nginx Web 服务器: