network expose compose change networking nginx docker

networking - expose - docker overlay network



Docker Network Nginx Resolver (3)

Estoy tratando de deshacerme de los enlaces Docker en desuso en mi configuración. Lo que queda es deshacerse de esos errores de proxy inverso Nginx de Bad Gateway cuando recreé un contenedor.

Nota: Estoy usando redes Docker en modo puente. ( docker network create nettest )

Estoy usando el siguiente fragmento de configuración dentro de nginx:

location / { resolver 127.0.0.1 valid=30s; set $backend "http://confluence:8090"; proxy_pass $backend;

  1. nettest un contenedor con confluence nombre de host en mi red Docker con el nombre nettest .
  2. Luego, inicié el contenedor nginx en la red nettest .
  3. Puedo hacer ping a la confluence desde el contenedor nginx
  4. confluence se enumera dentro del /etc/hosts del contenedor nginx
  5. El registro de nginx dice `send () failed (111: Connection refused) while resolving, resolver: 127.0.0.1: 53``
  6. /etc/resol.conf resolución de la /etc/resol.conf del /etc/resol.conf DNS dns 127.0.0.11 desde /etc/resol.conf
  7. El registro de nginx dice que la confluence could not be resolved (3: Host not found)

¿Alguien sabe cómo configurar nginx resolver con Docker Networks o una alternativa sobre cómo forzar a Nginx a resolver correctamente el nombre de host de la red Docker?


En primer lugar, debe utilizar el servidor DNS incorporado Docker en 127.0.0.11 .

Su problema podría ser causado por 1 de los siguientes:

  1. nginx está tratando de usar IPv6 (registro AAAA) para las consultas DNS.

    Consulte https://.com/a/35516395/1529493 para la solución.

    Básicamente algo como:

    http { resolver 127.0.0.11 ipv6=off; }

    Esto probablemente ya no sea un problema con Docker 1.11:

    Se corrigió el problema de no reenviar las consultas de dominio IPv6 a los servidores externos ( #21396 )

  2. Tenga cuidado de no anular accidentalmente la directiva de configuración del resolver . En mi caso, tuve en el bloque de server resolver 8.8.8.8 8.8.4.4; del Generador de Configuración SSL de Mozilla , que estaba anulando el resolver 127.0.0.11; en el bloque de http . Eso me hizo rascar mi cabeza por un largo tiempo ...


Necesita un servidor DNS local como dnsmasq para resolver el uso de 127.0.0.1. Intente instalarlo usando apk add --update dnsmasq y apk add --update dnsmasq si está usando una variante alpina ( nginx:alpine ).


Tal vez deberías consultar el /etc/resolv.conf tu contenedor

Muestra la configuración DNS correcta de su contenedor y luego utiliza esa IP del servidor DNS para resolver.

127.0.0.11 no funciona en Rancher