跳转到节

波德曼是什么?

复制URL

波德曼(POD经理)是一名开源用于在您的Linux®(Linux®)系统。最初由Red Hat®工程师和开源社区开发,Podman管理整个容器使用libpod库的生态系统。 

Podman的无守护和包容性体系结构使其成为容器管理的更安全、更易访问的选项,以及附带的工具和功能,例如布尔达斯科佩奥,允许开发人员自定义其容器环境以最适合他们的需要。 

豆荚是一起运行并共享相同资源的容器组,类似于库伯内特斯豆荚。Podman通过一个简单的命令行界面(CLI)和libpod库来管理这些pod,后者提供了用于管理容器、pod、容器映像和卷的API。Podman的CLI创建并支持开放式集装箱倡议(OCI)容器,其设计符合容器运行时和格式的行业标准,但补充项目Buildah中提供了更高级的构建功能。用户可以在各种Linux发行版上运行Podman,例如Red Hat Enterprise Linux,费多拉,百分位数、和Ubuntu公司

每个吊舱由一个红外控制器和任意数量的常规容器组成。infra容器保持pod运行并维护用户名称空间,从而将容器与主机隔离开来。其他容器都有一个监视器来跟踪它们的过程,并注意死容器——因为它们的一些资源仍在使用,所以无法从环境中取出的不起作用的容器。

波德曼从其他集装箱引擎中脱颖而出,因为它没有守护程序。守护进程是在系统后台运行的进程,用于在没有用户界面的情况下对正在运行的容器执行繁重的操作。将守护进程视为用户和容器本身之间的通信中介。 

虽然守护程序是管理容器环境的一种方便方法,但它们也可能引入安全漏洞。许多守护进程运行root权限。在Linux系统中,root帐户充当超级用户,具有管理访问权限(同时也绕过了管理验证的需要),可以读取文件、安装程序、编辑应用程序等。这使得守护程序成为想要控制容器并渗透主机系统的黑客的理想目标。 

Podman去掉了守护进程,允许普通用户在不与root拥有的守护进程交互的情况下运行容器,或者允许使用无根容器。通过无根,用户可以创建、运行和管理容器,而无需具有管理员权限的进程,从而使您的容器环境更易于访问,同时降低安全风险。此外,Podman在每个容器中启动一个安全增强型linux(SELinux)标签,使管理员能够更好地控制向容器进程提供的资源和功能。

用户可以从命令行调用Podman从存储库中提取容器并运行它们。Podman调用配置的容器运行时来创建正在运行的容器。但如果没有专用的守护程序,Podman会使用系统-Linux操作系统的系统和服务管理器,用于进行更新并保持容器在后台运行。通过集成systemd和Podman,您可以为容器生成控制单元,并在启用systemd的情况下运行它们。

用户可以在系统上管理自己的存储库以及系统单元,以控制自己容器的自动启动和管理。允许用户管理他们自己的资源,以及他们的容器无根地运行,这就阻止了诸如使/var/lib/containers成为可写的或其他可能使应用程序面临额外安全问题的系统管理实践等不良实践。这还可以确保每个用户都有单独的容器和图像集,并且可以在同一主机上同时使用Podman,而不会相互干扰。当用户完成他们的工作后,他们可以将更改推送到一个公共注册表,以便与其他人共享他们的图像。

波德曼还部署了RESTful API(REST API)来管理容器。REST代表REpresentational State Transfer。REST API是一种应用程序编程接口,它符合REST体系结构风格的约束,并允许与RESTful web服务进行交互。使用REST API,您可以从cURL、Postman、Google的Advanced REST客户端等平台调用Podman。

Podman是一个模块化的容器引擎,因此它必须与Buildah和Skopeo等工具一起构建和移动容器。使用Buildah,您可以从头开始构建容器,也可以使用图像作为起点。Skopeo在不同类型的存储系统之间移动容器映像,允许您在注册表(如docker.io、quay.io)和内部注册表或本地系统上不同类型的存储器之间复制映像。这种模块化的容器化方法通过减少开销和隔离实现目标所需的功能,形成了一个灵活、轻量级的环境。更小、更模块化的工具也可以更快地发展,每个工具都可以专注于一个目的。 

将Podman、Buildah和Skopeo视为一套专门的瑞士军刀,它们结合在一起几乎可以满足所有集装箱的使用情况。波德曼是这些刀中最大的。 

波德曼和Buildah的使用运行COCI运行时,默认情况下启动容器。您可以构建并运行映像,也可以使用runC运行docker格式的映像。这个基于Go语言的工具读取运行时规范,配置Linux内核,并最终创建和启动容器进程。通过一些配置更改,您还可以将Podman与其他封装外形一起使用,如crun(crun).

码头工人是一种集装箱化技术,能够创建和使用Linux容器Podman和Docker的主要区别是Podman的无守护体系结构。Podman容器一直是无根的,而Docker最近在其守护程序配置中添加了无根模式。Docker是一个用于创建和管理容器的一体式工具,而Podman及其相关工具(如Buildah和Skopeo)更专门用于容器化的特定方面,允许您根据云应用程序中的需要进行自定义。 

波德曼是Docker的强大替代品,但两者也可以协同工作。用户可以通过将Docker别名为Podman(别名Docker=Podman)和将Docker=Podman别名为Docker,轻松地在两者之间切换。此外,一个名为podman-docker的rpm可以将一个“docker”放入系统应用程序PATH中,PATH在需要“docker“命令的环境中调用podman,从而简化从docker的转换。Podman的CLI类似于Docker Container Engine,熟悉其中一个的用户可能会成功使用另一个。 

一些开发人员在开发阶段使用Docker,并在运行时环境中将其程序传输到Podman,以利用Podman和Docker的高安全性。 

Podman最适合运行没有Kubernetes或OpenShift容器平台的容器的开发人员。CRI-O公司是用于Kubernetes容器编排的开源社区驱动容器引擎,如Red Hat OpenShift®容器平台。

Podman通过提供与领先的容器引擎相同的高性能功能,但具有当今许多开发团队所追求的灵活性、可访问性和增强的安全性,改变了容器的格局。波德曼可以帮助您:

  • 管理容器映像和整个容器生命周期,包括运行、联网、检查点和删除。
  • 运行并隔离无根容器和豆荚的资源。
  • 支持OCI和Docker映像以及与Docker兼容的CLI。
  • 创建无守护程序环境,提高安全性并减少空闲资源消耗。 
  • 部署REST API以支持Podman的高级功能。
  • 使用用户空间中的检查点/恢复(CRIU)。CRIU可以冻结正在运行的容器,并将其内存内容和状态保存到磁盘,以便更快地重新启动容器化的工作负载。
  • 自动更新容器。Podman检测更新的容器是否无法启动,并自动回滚到上一个工作版本。这为应用程序提供了更高级别的可靠性。 

Podman包含在Red Hat Enterprise Linux订阅,以便您可以运行使用可信、可支持和可靠的通用基本映像(UBI)构建的OCI-compliant容器。Red Hat Enterprise Linux是在企业环境中运行Linux容器的标准,允许开发人员轻松启动容器、管理部署并加快新应用程序的开发。升级Red Hat Enterprise Linux基础设施可以帮助确保您准备好充分利用这些好处。通过在Red Hat Enterprise Linux上构建的便携式应用程序和容器开放混合云,您可以保持敏捷,并在转换目标发展时实现它们。

Red Hat Enterprise Linux web控制台通过易于使用的web界面简化了系统的部署和日常管理。Podman是web控制台的一个组件,可以帮助您管理容器和图像。通过访问容器主机并在web控制台的仪表板中监视系统负载,监视容器正在使用多少CPU和内存。使用web控制台,您可以简化常见任务和复杂操作,以简化容器管理。

通过使用易懂的行动手册,Red Hat Ansible®自动化平台允许您自动化Podman功能比如安装、容器部署和其他经常消耗时间和资源的任务。 

Podman和其他基于开放标准的容器工具使Red Hat Enterprise Linux成为一个功能强大的容器主机,提供生产粒度支持、稳定性和安全功能,以及通往Kubernetes和Red Hat-OpenShift的途径。

继续阅读

第条

什么是Linux容器?

Linux容器是一组与系统隔离的进程,从一个不同的映像中运行,该映像提供了支持进程所需的所有文件。

第条

容器与虚拟机

Linux容器和虚拟机(VM)是组合了各种IT组件并将其与系统其余部分隔离的打包计算环境。

第条

什么是容器编排?

容器编排自动化了容器的部署、管理、扩展和联网。