2017-10-12 145 views
0

我有一个节点应用程序公开了一个REST API。当它收到一个http请求时,它启动另一个/不同的节点应用程序,我们称之为“服务应用程序”。从Docker容器中运行的另一个节点应用程序启动节点应用程序

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

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

有人还建议我在Docker Swarm中运行我的REST应用程序,以便它在获取请求时为服务应用程序启动另一个Docker服务。但我不知道该怎么做,甚至有可能?

我是新来的码头工人,任何意见是高度赞赏。谢谢!

回答

0

您可以通过将安装/var/run/docker.sock文件绑定到容器本身(-v标志到docker run)来控制容器内部的docker。但要非常小心,如果有人能够访问它,这或多或少会使他能够访问机器。最安全的方式是创建第二个REST应用程序,该应用程序在单独的容器中运行,并可在被问到时启动新的容器。然后,你可以从第一个应用程序调用它,并确保它将只启动容器与您的应用程序,没有别的。

相关问题