【问题标题】:Is there a way to restrict container access for user in Docker?有没有办法限制 Docker 中用户的容器访问?
【发布时间】:2019-10-17 02:12:42
【问题描述】:

我正在使用 Docker 机器来托管一些进程,例如与朋友一起玩游戏服务器。我想为某些用户(并且仅限于此)授予对某些容器的 CLI 的访问权限,这样他们就不会互相干扰。我不希望它们成为此服务器上的根。

一个解决方案可能是创建用户,允许他们使用他们的容器执行某些命令(例如 sudo docker attach )并让他们做所有事情。我想知道是否有另一种更好、更正确的方法来做到这一点。

你做过这种实验吗?

谢谢。

【问题讨论】:

  • 如何为docker exec 命令创建别名,并在主机上以某种方式只允许终端用户执行这些别名?不知道后面有没有可能。
  • 任何可以运行任何docker 命令的人都可以轻松获得系统上不受限制的root 访问权限,句号。
  • 不幸的是这是不可能的。在您的容器中托管 ssh 服务器,并为他们提供 ssh 访问权限。
  • @Niloct 我正在考虑这样做,但这似乎不是正确的方法,正如 David Maze 所说。在每个进程上设置 OpenSSH 服务器可能是一种更安全的方式来做我想做的事......
  • 您是否知道搬运工确实允许创建用户/组并分配资源,例如容器给他们?在搬运工中,他们可以访问容器日志和终端。使用 portainer,您甚至不需要他们访问您的 docker 主机或在容器内运行 sshd 实例。

标签: docker archlinux user-permissions


【解决方案1】:

为什么不为每个服务创建一个单独的 Docker 容器?

换句话说,您为每个朋友创建一个容器,并在每个容器上创建一个用户,该用户是sudo 的成员(因此您的朋友将成为他自己容器的根)。然后安装 openssh-server,并将 SSH 访问数据(他的用户名和密码)提供给他的每个朋友到他的容器。这样他们就可以为所欲为,而不会相互影响。

当然不要忘记将 SSH 连接(以及您想要的任何其他服务连接)从主机转发到容器。

【讨论】:

    【解决方案2】:

    站在那里很伤心

    Why doesn't Docker support multi-tenancy?

    docker 不支持多租户,因此您无法将用户彼此隔离。

    编辑:一种可能的解决方案是在每个容器中创建 SSH 服务器,然后让您的用户通过 SSH 直接连接到容器,而不是使用主机。

    【讨论】:

      猜你喜欢
      • 2021-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-16
      • 1970-01-01
      • 2017-02-16
      • 1970-01-01
      相关资源
      最近更新 更多