Tengo una pregunta para Docker. Ahora ejecuto Apachce con diferentes sitios en diferentes carpetas con hosts virtuales configurados. Ahora quiero ejecutar varios contenedores Docker mediante enrutamiento basado en nombres. ¿Cómo hacerlo? Tuve la idea de ejecutar cada contenedor en su propio puerto y usar Apache para reenviar 80 o 443 al puerto del contenedor. Pero creo que será un gran problema de rendimiento y no sé cómo configurarlo. Gracias.
Respuesta1
Si ejecuta Apache para cada host virtual, el consumo de memoria y el uso de CPU serían mayores, especialmente en un sitio amigo.
Docker le ayudaría marginalmente con sus problemas de implementación.
Sería útil si pretende tener diferentes configuraciones para cada host virtual, como una con PHP y otra con Tomcat/Java.
Si desea tener cada host en un contenedor, también necesitará asignar una dirección IP para cada uno de ellos. Puedes tener los nombres de host en DNS, apuntando a cada IP respectiva.
No es necesario realizar reenvío de puertos ni proxy inverso. Piense en tener una máquina virtual para cada instancia de Apache. Cada apache será el contenedor. No se ejecutará nada más en él, a menos que configure explícitamente el contenedor para ejecutar otra cosa.
Si desea utilizar una única IP externa, puede utilizar un proxy inverso que esté en la parte frontal de los contenedores.