• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

321
Views
¿La mejor manera de ejecutar dos aplicaciones docker compose detrás de nginx en una máquina host?

Tengo dos aplicaciones docker-compose:

  • a.com
  • b.com

Quiero ejecutarlos en la misma máquina host y colocar un proxy de contenedor nginx para enrutar las solicitudes entrantes a los servicios correctos dentro de cada una de las aplicaciones de docker-compose.

Creo que necesito tener un solo contenedor nginx que se ejecute por separado de las dos aplicaciones de composición de ventana acoplable. Anteriormente usé nginx-proxy , pero mi enrutamiento se volvió más complejo, por lo que quiero ejecutar mi propia instancia de nginx ahora.

  • No puedo averiguar cómo conectar en red las dos aplicaciones y el contenedor nginx para que todo esto funcione de manera sensata.
  • Cuando docker run el contenedor nginx, obtengo: host not found in upstream "MY_CONTAINER_HOST_NAME" , lo que sugiere que el nombre de host de mi aplicación no se resuelve desde el contenedor nginx.
  • Puedo publicar mi configuración de nginx si es necesario, pero esta es realmente una pregunta de mejores prácticas/redes de Docker.
about 3 years ago · Santiago Trujillo
2 answers
Answer question

0

nginx-proxy debería ser lo suficientemente bueno, siempre que sea compatible con una red adjunta de docker swarm ( problema 520 , aún pendiente)

También podría considerar vfarcic/docker-flow-proxy , una manera fácil de reconfigurar el proxy cada vez que se implementa un nuevo servicio o cuando se escala un servicio.

Consulte " Integración de proxy con Docker Swarm (Tour Around Docker 1.12 Series) " para ver un ejemplo concreto.

about 3 years ago · Santiago Trujillo Report

0

Se me ocurren 2 opciones para esto:

Primero:

Ejecute ambas aplicaciones y nginx en la misma red definida por el usuario de docker. Para hacer esto, primero debe crear una red definida por el usuario:

 docker network create appnet

Luego, cambie sus archivos acoplables para usar la red de la aplicación como externa (las redes externas no crearán una red ni usarán la existente)

Segundo:

Cree 2 redes definidas por el usuario, denominadas appnet1 y appnet2, adjunte a.com a appnet1 y b.com a appnet2 marcadas como red externa en docker-compose. Luego abra el nginx y adjúntelo a appnet1 y appnet2.

Cuando docker ejecuto el contenedor nginx, obtengo: host not found in upstream "MY_CONTAINER_HOST_NAME", lo que sugiere que el nombre de host de mi aplicación no se resuelve desde el contenedor nginx.

Tenga en cuenta: las redes definidas por el usuario proporcionarán un DNS interno para que pueda llamar a los contenedores en la misma red por el nombre del contenedor.

Ejemplo de red externa:

Si desea que sus contenedores se unan a una red preexistente, use la opción externa:

 networks: default: external: name: my-pre-existing-network

En lugar de intentar crear una red llamada [nombre del proyecto]_default, Compose buscará una red llamada mi red preexistente y conectará los contenedores de su aplicación a ella.

about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error