从Docker容器内运行的另一个节点应用程序启动节点应用程序

时间:2017-10-12 15:31:17

标签: node.js docker pm2

我有一个节点应用程序公开REST API。收到http请求后,它会启动另一个/不同的节点应用,让我们称之为“服务应用”。

REST应用程序在容器内运行,启动服务应用程序的最简单方法是调用child_process.exec(我们只是pm2),但随后它们在同一个容器中运行。如果REST应用程序获得多个请求,那么这个容器解决方案就不会扩展。

REST应用程序是否可以启动在其自己的容器内运行的服务应用程序?如果是的话怎么做?

有人还建议我在docker swarm中运行我的REST应用程序,这样当它收到请求时,它就会启动服务应用程序的另一个docker服务。但我不知道该怎么做,甚至可能呢?

我是docker的新手,任何建议都非常感谢。谢谢!

1 个答案:

答案 0 :(得分:0)

您可以通过将装载/var/run/docker.sock文件绑定到容器本身(-v标记为docker run)来控制容器内部的docker。但是要非常小心,如果有人能够访问它,那么它或多或少等于给予他对机器的root权限。最安全的方法是创建第二个REST应用程序,该应用程序在单独的容器中运行,并在被询问时启动新容器。然后你可以从第一个应用程序调用它,并确保它只会启动你的应用程序的容器,而不是其他任何内容。

相关问题