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

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

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

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

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

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

你可以从容器内控制docker,例如绑定挂载/var/run/docker.sock文件到容器本身(-v标志到docker run)。 但是要非常小心,如果有人能够访问它,那么就等于让他能够访问机器。 最安全的方法是创build第二个REST应用程序,在单独的容器中运行,并可以在询问时启动新的容器。 然后你可以从第一个应用程序调用它,并确保它将只启动容器与您的应用程序,没有别的。