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;
-
nettest
un contenedor conconfluence
nombre de host en mi red Docker con el nombrenettest
. - Luego, inicié el contenedor nginx en la red
nettest
. - Puedo hacer ping a la
confluence
desde el contenedor nginx -
confluence
se enumera dentro del/etc/hosts
del contenedor nginx - El registro de nginx dice `send () failed (111: Connection refused) while resolving, resolver: 127.0.0.1: 53``
-
/etc/resol.conf
resolución de la/etc/resol.conf
del/etc/resol.conf
DNS dns127.0.0.11
desde/etc/resol.conf
- 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:
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 )
Tenga cuidado de no anular accidentalmente la directiva de configuración del
resolver
. En mi caso, tuve en el bloque deserver
resolver 8.8.8.8 8.8.4.4;
del Generador de Configuración SSL de Mozilla , que estaba anulando elresolver 127.0.0.11;
en el bloque dehttp
. 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