Podman:Docker 的替代品?

虽然 docker 无疑彻底改变了我们开发、部署和运行应用程序的方式,但值得探索是什么让 Podman (Pod Manager) 与众不同,以及为什么您可能想要开始使用它。
在本文中,假设每个人都已经熟悉 Docker,我们将深入探讨 podman 的核心功能。

开始吧!

什么是波德曼?

简单来说,Podman 是一个开源容器和 Pod 管理器。

与 docker 类似,它允许您创建、启动、停止和删除OCI容器,以及管理容器映像,但它还支持 pod 作为其功能集的一部分,这意味着您可以像使用 Kubernetes 一样创建和管理 pod。

但是等等 OCI 容器?

OCI(Open Container Initiative):是一个行业标准组织,旨在创建一套规则(规范和标准)以确保容器在不同平台上一致地工作。

那么这是什么意思 ?

这意味着 Podman 的图像/容器与 docker 或任何依赖于 OCI 兼容容器运行时的容器化技术完全兼容。

太好了,现在我们知道 podman 与 docker 完全兼容,但等等它更有趣。

大多数 docker 用户可以简单地将 Docker 别名为 Podman(alias docker=podman)而不会出现任何问题。
这意味着除了 docker swarm 之外,所有 docker 的命令都保持不变。

您可能想知道 Podman 带来了什么。

让我们深入了解一下!

建筑学

您看得出来差别吗 ?

Podman 的架构是无守护进程的

哇那是什么,为什么我们要摆脱旧的 docker 守护进程?

守护进程是在系统后台运行的进程,它们通常在后台连续运行,等待某些事件或请求的发生。

回到容器,将 docker 守护进程视为用户与容器本身之间进行通信的中介。

问题 ?

使用守护进程管理容器几乎没有问题:

单点故障
一旦守护进程崩溃,所有容器都会崩溃。

需要 root 权限
这使得 docker 守护进程成为黑客的理想目标,他们想要控制您的容器并渗透到主机系统。

Podman 通过直接与容器注册表、容器和图像存储交互来解决上述挑战,而不需要守护进程,因此是无守护进程架构。

通过无根(不需要 root 权限),用户可以创建、运行和管理容器,而不需要具有管理员权限的进程,从而降低安全风险

buildah实用程序取代 docker build 作为容器镜像构建工具。类似地,skopeo取代了 docker push 并支持在注册中心之间移动容器镜像。这些工具提供了与必要组件的高效和直接交互,消除了进程中对单独守护进程的需要。

我是否应该重写每个 dockerfile 和 docker-compose 文件以便能够在我现有的项目中使用 podman?

答案:绝对不是

Podman 旨在通过提供与 docker 容器文件语法的兼容性来提供熟悉的开发人员体验。
此外,Podman 引入了一个名为 pod compose 的类似工具作为 docker compose 的替代品。
Pod compose 使用相同的语法,允许您使用相同的方法甚至使用现有的“docker-compose.yml”文件来定义和管理多容器应用程序。

至于 Docker 桌面,Podman 还附带了 Podman 桌面,提供了增强的功能,使其更加强大和精简。它提供与 Docker 和 Kubernetes 的兼容性,增强了其功能并提供更流畅的体验。

您可以在其官方网站zhifj.com​​​​​​中找到 Podman 的安装指南和文档

结论

鉴于 Podman 的无守护程序架构、与 Docker 相当的开发人员经验,以及两者都是拥有繁荣社区的开源项目这一事实,坚持使用 Docker 与 Podman 相比并没有明显的优势。

猜你喜欢

转载自blog.csdn.net/jascl/article/details/131304150