Tengo un conjunto de contenedores Docker que en este momento usa una imagen php-fpm para alojar una aplicación y un contenedor nginx que en este momento brinda acceso a esa aplicación. Tengo un tercer contenedor que periódicamente usa curl para mostrar una URL dentro de ese contenedor. Este comando en este momento usa el nombre de host nginx . (La imagen está basada en alpine:latest ...)
/usr/bin/curl --silent -i http://nginx/secret_url ...
Ahora, quiero usar nginx_proxy para permitirme ejecutar más de un contenedor de aplicaciones. Pero, ahora, ¿cómo sabrán los comandos curl cómo enviar la solicitud a través de nginx_proxy al contenedor de aplicación adecuado? ¿Cómo habría resolución de nombres?
... o, ¿importa? Si curl simplemente emite una solicitud en la red interna de Docker (compartida por nginx_proxy ) intentando conectarse al "puerto 80" y especifica la URL que elija, la solicitud llegará al proxy, que luego es responsable de resolver el virtualhost nombre... que yo se que va a hacer...? Lo que me pregunto es cómo la solicitud curl realmente llegará al servidor web. ¿Simplemente me estoy confundiendo?
¿Es, por ejemplo, el caso de que el nginx en la URL citada anteriormente en realidad podría ser cualquier cosa?
Terminé especificando IPV4_ADDRESS del contenedor nginx-proxy (dentro de la red puenteada de Docker), luego especificando esto en un /etc/hosts que cargué en el contenedor cronjob .
Es importante que, mientras que /etc/hosts en el entorno contenedor-host probablemente debería especificar 127.0.0.1 , eso no funcionará en un contenedor. El contenedor solo ve "su" red, por lo que, desde su punto de vista, 127.0.0.1 se referiría literalmente al contenedor mismo.