首页 > 解决方案 > 使用不同的用户运行无根 docker 容器

问题描述

我最近才开始探索无根 docker,有些东西我还没有完全掌握。以下是我对这个概念的理解和一些问题。如果有问题请纠正我

使用 rootless,守护程序和容器可以以非 root 用户身份运行以减轻潜在的漏洞,例如,如果有人要访问以 root 身份运行的容器,那么如果他离开容器(并进入主机系统)。因此,如果有人要访问无根容器,那么他只能充当运行容器的非 root 用户。

我想运行多个容器,它们之间不需要任何网络,所以我认为不将它们作为同一个用户运行可能是有意义的,但这是正确的吗?另外,在这种情况下,我是否需要为每个用户多次安装和运行守护程序?

容器内的用户呢?我试过了pihole/pihole,容器内的默认用户是root(id:0)。现在可以了吗,因为容器是无根的?我尝试使用user: "1005:1005"(在 docker-compose.yml 中)将其设置为不同的用户,但随后容器无法启动,因为它缺少执行某些任务的权限)。

标签: dockerdocker-compose

解决方案


因为root用户存在于基于 Linux 的操作系统中,所以您将始终有一个root用户存在于基于 Linux 的容器中。无根容器是以非根用户身份执行进程的容器,即任何具有 id != 0 的用户。您可以阅读以非根用户身份运行 Docker 守护进程(无根模式)文档以更深入地理解这一点.

并非所有容器都设计为在无根模式下工作。如果您使用不是您自己创建的第 3 方容器,则可能需要root用户正确运行。这完全取决于特定的容器映像,请参阅任何容器映像给您错误的文档。


推荐阅读