无根 Docker、以非 root 用户身份运行容器和 Podman 之间有什么区别?

无根 Docker、以非 root 用户身份运行容器和 Podman 之间有什么区别?

最近,我一直在尝试以非 root 用户身份运行我的 Docker 应用程序。我发现有几种可用的选项:

  1. 安装无根 Docker:显然,这是 Docker 的“非根”版本,可以以非根用户身份运行容器。
  2. 使用普通(rootful)Docker,但docker run使用--user标志运行容器。
  3. 用户 Podman 运行容器。

我对这些解决方案都不熟悉,我只以 root 身份使用过 Docker。那么这些方法有什么区别和优缺点呢?

结果不是完全一样的吗,即以非root用户身份运行的容器?

答案1

它们是不同的东西。

  • docker run --user设置要使用的 UID里面容器。限制在容器本身内运行的特定程序的权限很有用

  • 无根 docker 意味着docker以非特权用户身份运行守护进程本身。docker无需在主机系统上授予 root 权限,即可控制自身缺陷。来自 docker 的文档:

无根模式允许以非 root 用户身份运行 Docker 守护程序和容器,以缓解守护进程和容器运行时。

  • podman是 的无守护进程重新实现docker。没有中央守护进程来运行/管理所有容器实例应该更安全、更轻量

相关内容