Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 8925|Respuesta: 0

Contenedor Docker para acceder a servicios anfitriones externos

[Copiar enlace]
Publicado en 19/11/2019 10:10:01 | | | |
La red predeterminada del contenedor docker es un puente (en la misma LAN que el host, pero usando una IP LAN separada); cuando el programa se ejecuta en el entorno de producción, solo necesitas configurar la dirección de servicio correspondiente para conectarse a la base de datos, redis, etc.

En un entorno de desarrollo, si el servicio se ejecuta en docker y la base de datos se ejecuta localmente, configurar 127.0.0.1 no es fácil de usar.

Esto se puede resolver de dos maneras.

Solución 1:

Trata la máquina anfitriona y el contenedor como dos máquinas separadas, y configura la IP LAN o IP pública del host al configurar la dirección.

Solución 2:

Escribe la dirección del host directamente como: host.docker.internal, eso síEl segundo método requiere una versión de docker superior a la 18.03 y debe estar disponible en Windows y Mac

Para probar si estos dos métodos pueden acceder al host, puedes ejecutar directamente una imagen con docker para hacer ping a la línea de comandos:

Instala la herramienta ping en un contenedor construido con Docker
https://www.itsvse.com/thread-8966-1-1.html
(Fuente: Architect_Programmer)


Como puedes ver en la imagen de arriba, acceso por contenedorhost.docker.internalPuedes acceder al servicio del host, comprobando el archivo /etc/hosts, verás que no hay redirección de nombre de dominio y que no conoces el principio subyacente específico de docker.

Tanto el host como el contenedor pueden acceder a los servicios del host a través de host.docker.internal, pero la dirección que devuelve el comando ping es diferente, de la siguiente manera:









Anterior:Los ejemplos explican qué son la penetración de cachés de Redis, avalancha de caché y ruptura de caché
Próximo:Autofac "Error de dependencia circular detectada" resuelto
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com