Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法限制Docker中用户对容器的访问?_Docker_Archlinux_User Permissions - Fatal编程技术网

有没有办法限制Docker中用户对容器的访问?

有没有办法限制Docker中用户对容器的访问?,docker,archlinux,user-permissions,Docker,Archlinux,User Permissions,我使用Docker机器来托管一些进程,比如和朋友一起玩游戏服务器。我想为一些用户提供对某些容器CLI的访问权限,并且仅限于此,这样他们就不能相互干扰。我不希望这些是这个服务器上的根 一个解决方案可能是创建用户,允许他们使用容器(如sudo docker attach)执行特定的命令,并让他们做任何事情。我想知道是否有另一种更好和适当的方法来做到这一点 你做过这种试验吗 谢谢。站在那里很难过 docker不支持多租户,因此无法将用户彼此隔离 编辑:一种可能的解决方案是在每个容器中创建SSH服务器,

我使用Docker机器来托管一些进程,比如和朋友一起玩游戏服务器。我想为一些用户提供对某些容器CLI的访问权限,并且仅限于此,这样他们就不能相互干扰。我不希望这些是这个服务器上的根

一个解决方案可能是创建用户,允许他们使用容器(如sudo docker attach)执行特定的命令,并让他们做任何事情。我想知道是否有另一种更好和适当的方法来做到这一点

你做过这种试验吗


谢谢。

站在那里很难过

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


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

换句话说,你为每个朋友创建一个容器,在每个容器上创建一个用户,这个用户是sudo的成员,所以你的朋友将是他自己容器的根。然后安装openssh服务器,并将SSH访问数据的用户名和密码提供给每个朋友的容器。这样他们就可以随心所欲,互不影响


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

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