欢迎光临散文网 会员登陆 & 注册

Podman:Docker 的替代品?

2023-06-25 10:17 作者:晓枫Motivation  | 我要投稿

虽然 docker 无疑彻底改变了我们开发、部署和运行应用程序的方式,但值得探索一下 Podman(Pod Manager)的与众不同之处以及为什么您可能想开始使用它。

在本文中,假设每个人都已经熟悉 Docker,我们将深入探讨 podman 的核心功能。


开始吧!


(更|多优质内|容:java567 点 c0m)




## 波德曼是什么?




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


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


但等等 OCI 容器?


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




那么这是什么意思 ?


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


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


大多数 docker 用户可以简单地将 Docker 别名为 Podman(别名 docker=podman),不会出现任何问题。

这意味着除了 docker swarm 之外,所有 docker 的命令都保持不变。


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


让我们深入探讨一下!


## 建筑学




您看得出来差别吗 ?


Podman 的架构是无守护进程的。


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


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


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


问题 ?


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


单点故障

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


需要 root 权限

这使得 docker 守护进程成为想要控制容器并渗透主机系统的黑客的理想目标。


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


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


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 的兼容性,增强其功能并提供更流畅的体验。




您可以在其官方网站podman找到 Podman 的安装指南和文档


## 结论


鉴于 Podman 的无守护进程架构、与 Docker 相当的开发人员体验,以及两者都是具有蓬勃发展社区的开源项目这一事实,与 Podman 相比,坚持使用 Docker 并没有显着的优势。


(更|多优质内|容:java567 点 c0m)


Podman:Docker 的替代品?的评论 (共 条)

分享到微博请遵守国家法律