Pregunta Ejecuta varios servidores desde una imagen del acoplador


Tengo tres servidores express escritos en nodejs. Estos servidores tienen diferentes propósitos y, por lo tanto, se ejecutan en diferentes puertos.

Por ejemplo: app1.js en 8000, app2.js en 5000 y app3.js en 5432.

Quiero crear una imagen de portador usando un archivo acoplable y ejecutar todos estos servidores. ¿Podemos hacerlo? Si es así, ¿cómo podemos hacerlo? Según mi conocimiento, podemos ejecutar solo un comando desde el archivo Docker.


6
2017-07-27 17:42


origen


Respuestas:


Es posible que desee considerar el uso Docker Compose.

Cada servidor tendría su propio archivo Docker y su archivo docker-compose.yml definiría los puertos que exponen y cómo interactúan.


5
2017-07-27 17:48



El mecanismo sugerido por Ethan es correcto para ejecutar múltiples contenedores docker a la vez, pero no explica por qué.

Solo para explicar un poco más, cada contenedor de docker puede generar múltiples procesos (servidores), pero un contenedor acoplable necesita que uno de los procesos esté en primer plano, y el ciclo de vida del contenedor acoplado normalmente refleja el ciclo de vida del proceso en primer plano.

Muchos de los beneficios de la dockerización se perderán cuando ejecute todos los procesos en un contenedor acoplable. Y por lo tanto, se recomienda tener un contenedor docker por proceso.


4
2017-07-27 17:59



Si bien no es "recomendado", seguro que puedes. Incluso está documentado.

Docker y Supervisord

O puedes usar Ejecutarlo

Últimamente he estado usando s6


2
2017-07-27 19:35



Es posible que desee comprobar el imagen de nodo de pasajero de phusion. Puede configurarlo para que ejecute un solo servidor que esté sirviendo datos de múltiples procesos nodejs.


0
2017-07-27 18:02