El host puede acceder a la red pública pero no se puede acceder en el contenedor Docker Fallo temporal en la resolución de nombres
Parámetros del contenedor
También configuré el dns de docker-compose.yml. Lógicamente hablando, debería ser accesible, pero sigue rozando el suelo.
web:
build: .
restart: always
ports:
- "6699:80"
dns:
- 114.114.114.114
- 8.8.8.8
volumes:
- "./:/app"
networks:
backend:
solución de problemas
Si se puede acceder al contenedor usando la dirección IP pública, puedo acceder aquí, pero no puedo acceder usando el nombre de dominio. Al acceder al nombre de dominio a través de telnet, aparece una falla temporal en la resolución del nombre, lo que significa que el nombre de dominio no puede resolverse. El problema debe estar en DNS, así que aquí viene la pregunta. Inspiración: ¿No es suficiente mantener el DNS del contenedor consistente con el del host? Como resultado, probaré el siguiente método para verificar el exactitud de mi suposición.
Solución
Verifique el servicio DNS del host
cat /etc/resolv.conf
Luego agregue el servidor de nombres del host al contenedor.
web:
build: .
restart: always
ports:
- "6699:80"
dns:
- 183.xx.xx.19 // 把宿主机的域名服务添加在这里
- 183.xx.xx.98 // 把宿主机的域名服务添加在这里
- 114.114.114.114
- 8.8.8.8
volumes:
- "./:/app"
networks:
backend:
Luego guarde, ejecute docker-compose up -d --build para actualizar la configuración del contenedor y listo.