【问题标题】:How can configure Docker so that a user may only stop the containers they started?如何配置 Docker 以便用户只能停止他们启动的容器?
【发布时间】:2018-05-28 05:14:42
【问题描述】:

在我的电脑上(Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-119-generic x86_64), Docker version 18.03.0-ce, build 0520e24),如果用户 A 启动一个容器 (docker run),用户 B 可能会停止它 (docker stop)。

如何配置 Docker 以便用户只能停止他们启动的容器?

【问题讨论】:

    标签: docker permissions


    【解决方案1】:

    在 docker 中没有办法做到这一点。这是因为 docker 容器本质上是以 root 身份运行的。这意味着某人可以在他们拥有 root 访问权限的地方部署一个容器,通过卷映射让他们自己访问主机环境,并且 bam,他们在主机上拥有 root 访问权限。

    如果您想让多个用户拥有 docker 环境,并且他们应该被隔离,您将不得不为此推出自己的解决方案(这涉及不通过命令行访问 docker 机器或容器),或者您将需要多台机器(每个用户一台),它们可以被隔离到。

    这是一篇关于 docker root 升级的好文章:http://container-solutions.com/docker-security-admin-controls-2/ (mirror)。

    【讨论】:

    • 谢谢。 “你需要多台机器(每个用户一台),它们可以被隔离到。” -> 你的意思是多台电脑吗?
    • 是的,或者同一台计算机上有多个虚拟机。您可以使用虚拟机在本地计算机上进行模拟(查看 VirtualBox with Vagrant 以轻松入门)
    【解决方案2】:

    通过将用户添加到 docker 用户组或使他成为管理员用户来向用户公开 Docker CLI,他可以创建、删除和终止容器。他甚至可以更改 Docker 守护程序的配置。

    如果不需要 CLI 访问,您可以通过拒绝除管理员用户之外的所有用户访问来更改此设置。

    用户管理可以使用portainerdocker ucp等解决方案进行管理

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-29
      • 2016-08-23
      • 1970-01-01
      相关资源
      最近更新 更多