从docker镜像运行多个服务器

时间:2016-07-27 17:42:50

标签: node.js ubuntu docker

我在nodejs上写了三个快速服务器。这些服务器用于不同的目的,因此可以在不同的端口上运行。

例如:8000上的app1.js,5000上的app2.js和5432上的app3.js.

我想使用docker文件创建一个docker镜像并运行所有这些服务器。我们可以这样做吗?如果是这样,我们怎么做呢?据我所知,我们只能从docker文件中运行一个命令。

4 个答案:

答案 0 :(得分:5)

您可能希望使用Docker Compose

每个服务器都有自己的Dockerfile,你的docker-compose.yml文件将定义这些暴露的端口以及它们如何交互。

答案 1 :(得分:4)

Ethan建议的机制对于一次运行多个docker容器是正确的,但不能解释原因。

为了进一步解释,每个docker容器可以产生多个进程(服务器),但是docker容器需要其中一个进程位于前台,而docker容器生命周期通常反映前台进程的生命周期。

当您在一个docker容器中运行所有进程时,docker化的许多好处将会丢失。因此,建议每个进程使用一个docker容器。

答案 2 :(得分:2)

虽然不推荐"但你确定可以。它甚至记录在案。

Docker and Supervisord

或者您可以使用Runit

最近我一直在使用s6

答案 3 :(得分:0)

您可能想查看phusion passenger nodejs image。您可以将其配置为运行从多个nodejs进程提供数据的单个服务器。