我最近玩的是码头工人容器。我已经设置了一个docker主机,用户是docker组的一部分,因此他们可以为他们自己启动容器。但在这种情况下,用户A可以访问由用户A启动的容器。所以我正在寻找一种方法将用户容器与其他用户隔离,并尝试将-u
标志添加到docker run
命令,但得到了以下错误
FATA[0001] Error response from daemon: Cannot start container XXXXX: [8] System error: Unable to find user abc
相同的命令与-u
标志
用户abc在主机上确实存在,但不确定我在这里缺少什么。
谁知道这里有什么问题?我使用Docker 1.6.2在Ubuntu 14.04上
答案 0 :(得分:1)
Docker不是多租户服务,它解释了为什么容器对同一服务器上的用户可见。
理论上你可以为每个用户启动一个docker守护进程,但是为每个用户提供一个可以在其中运行容器的虚拟机可能更简单。
答案 1 :(得分:1)
有权在主机上运行Docker容器的用户有效地在该主机服务器上具有完全root访问权限。他们可以轻松运行docker run -it --rm -v /:/target debian
并拥有一个root shell,主机文件系统映射到该shell。
因此,您无法通过直接访问Docker引擎与其他用户隔离。为了获得您正在寻找的隔离,您需要在Docker引擎之上使用一个工具来提供RBAC并仔细配置以限制每个用户可以提交的内容。 Docker拥有自己的(通用控制平面)和其他供应商已经创建了类似的产品。或者,正如Mark建议的那样,给每个用户自己的VM运行Docker的孤立实例。