如何将docker容器与其他用户隔离开来

时间:2016-07-31 23:52:24

标签: linux ubuntu docker cloud

我最近玩的是码头工人容器。我已经设置了一个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上

2 个答案:

答案 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的孤立实例。