我在nodejs上写了三个快速服务器。这些服务器用于不同的目的,因此可以在不同的端口上运行。
例如:8000上的app1.js,5000上的app2.js和5432上的app3.js.
我想使用docker文件创建一个docker镜像并运行所有这些服务器。我们可以这样做吗?如果是这样,我们怎么做呢?据我所知,我们只能从docker文件中运行一个命令。
答案 0 :(得分:5)
您可能希望使用Docker Compose。
每个服务器都有自己的Dockerfile,你的docker-compose.yml文件将定义这些暴露的端口以及它们如何交互。
答案 1 :(得分:4)
Ethan建议的机制对于一次运行多个docker容器是正确的,但不能解释原因。
为了进一步解释,每个docker容器可以产生多个进程(服务器),但是docker容器需要其中一个进程位于前台,而docker容器生命周期通常反映前台进程的生命周期。
当您在一个docker容器中运行所有进程时,docker化的许多好处将会丢失。因此,建议每个进程使用一个docker容器。
答案 2 :(得分:2)
答案 3 :(得分:0)
您可能想查看phusion passenger nodejs image。您可以将其配置为运行从多个nodejs进程提供数据的单个服务器。