docker - 使用不同的用户运行无根 docker 容器
问题描述
我最近才开始探索无根 docker,有些东西我还没有完全掌握。以下是我对这个概念的理解和一些问题。如果有问题请纠正我
使用 rootless,守护程序和容器可以以非 root 用户身份运行以减轻潜在的漏洞,例如,如果有人要访问以 root 身份运行的容器,那么如果他离开容器(并进入主机系统)。因此,如果有人要访问无根容器,那么他只能充当运行容器的非 root 用户。
我想运行多个容器,它们之间不需要任何网络,所以我认为不将它们作为同一个用户运行可能是有意义的,但这是正确的吗?另外,在这种情况下,我是否需要为每个用户多次安装和运行守护程序?
容器内的用户呢?我试过了pihole/pihole
,容器内的默认用户是root(id:0)。现在可以了吗,因为容器是无根的?我尝试使用user: "1005:1005"
(在 docker-compose.yml 中)将其设置为不同的用户,但随后容器无法启动,因为它缺少执行某些任务的权限)。
解决方案
因为root
用户存在于基于 Linux 的操作系统中,所以您将始终有一个root
用户存在于基于 Linux 的容器中。无根容器是以非根用户身份执行进程的容器,即任何具有 id != 0 的用户。您可以阅读以非根用户身份运行 Docker 守护进程(无根模式)文档以更深入地理解这一点.
并非所有容器都设计为在无根模式下工作。如果您使用不是您自己创建的第 3 方容器,则可能需要root
用户正确运行。这完全取决于特定的容器映像,请参阅任何容器映像给您错误的文档。
推荐阅读
- mysql - 为什么 DISTINCT OF MYSQL 不删除重复?
- spring-boot - 如何根据哈希键插入的值设置redis缓存中特定键下的值的到期时间
- r - R中的高阶ARMA建模
- python - Windows 上的 Python 无法在树莓派上运行
- threadx - ThreadX 模块管理器内存
- python - 可以将视频文件发送到 Pixhawk+Raspberry Pi 无人机吗?
- vue.js - mount () vuejs 中的服务器端获取未呈现
- javascript - 带有动态数据下拉菜单的可编辑 html 表格
- python - 为什么 CNN 模型可以识别没有字符段的图像中的字符?
- excel - 为什么工作表副本省略单元格