Podman 与 Docker 有何不同?

quo*_*c9x 5 cloud redhat docker devops podman

我知道 Docker 和 Kubernetes 解决了同样的问题。大多数用户可以简单地将 Docker 别名为 Podman(别名 docker=podman),不会出现任何问题。

那么它们之间有什么区别呢?

Don*_*ato 7

Podman 比 Docker 更安全、更轻量。Docker 依赖于在系统后台运行的守护进程。每当您访问 Docker CLI 或 API 来运行和管理容器时,您实际上就是在与该守护进程进行通信。Podman 是无守护进程的!如果您使用 Podman CLI 执行命令,它将执行这些命令并直接在系统上运行容器。因此,Podman 不依赖于单点故障,而且同样重要的是,您可以无根运行容器。Docker 守护进程以 root 权限在后台运行。有效:

  1. Podman 容器默认以非 root 用户身份运行

  2. 用户可以运行自己的容器,同时容器在用户命名空间中运行,在该命名空间中容器被严格隔离,其他用户无法访问

  3. 容器是无守护程序的,并在轻量级 CRI-o 容器运行时之上运行

注意,无根容器没有 IP 地址,只能绑定到非特权端口,并且必须是它们用于存储的目录的所有者。


小智 2

以下是 Docker 和 Podman 之间的一些核心区别:

码头工人 波德曼
Docker 是一个整体、强大、独立的工具 Podman 采用模块化方法,依靠专用工具来完成特定职责
Docker 使用守护进程 Podman 不使用守护进程
Docker 守护进程需要 root 权限 Podman 容器可以运行非特权用户
它不如 Podman 安全,因为它需要 root 访问权限 它比 docker 更安全,因为无根容器被认为比其他容器更安全

您可以在互联网上找到很多有关 Docker 与 Podman 的文章。

  • @BMitch,它读起来就像同一个问题的前 10-15 个谷歌结果,也缺乏细节,但对我来说读起来并不像营销。您能否启发我们其他人,他们不知道 podman 下不运行什么,以及它给 systemd 带来了什么负担? (3认同)
  • 这就缺少了podman将更多的工作推入systemd中,使得Linux上最臃肿的守护进程变得更加臃肿。它读起来就像 podman 的营销材料,缺少所有不在 podman 下运行的东西。 (2认同)