从Docker容器中执行主机命令

rga*_*eth 4 security docker

我正在寻找一种方法,使用户能够在主机上执行一组有限的命令,而仅从容器/浏览器访问它。我们的目标是防止主机需要SSH'ing只是运行命令偶尔喜欢make startmake stop等等。这些make命令只是执行一系列的docker-compose命令,并在开发有时需要。

我想到的两种可能方法是:

  • 通过浏览器内部的cloud9终端(我们已经在使用它)。默认情况下,此终端当然只访问容器本身。
  • 通过一个自定义的微型web应用程序(例如node.js / express),其中的按钮映射到命令。如果在主机本身上运行,这将很容易做到,但是我想将所有这样的代码保留在容器中。

Ana*_*tel 5

尽管可能不是最佳实践,但仍然可以从容器内部控制主机。如果您正在运行docker-compose命令,则可以通过-v /var/run/docker.sock:/var/run/docker.sock在ubuntu上使用绑定绑定docker套接字。如果您想使用其他系统工具,则-v当您要使用使用/lib.*.so文件的系统箱时,必须绑定安装所有必需的卷,这确实非常棘手且乏味。

如果您需要使用sudo命令,请不要忘记--privileged在运行容器时添加标志


use*_*097 -7

容器不应该突破并访问主机。Docker(除其他外)是进程隔离。不过,当您设置主机时,您可能会发现在主机上执行某些代码的各种技巧。