Saltar al contenido

Cómo conectarse al host de Docker desde el contenedor en Windows 10 (Docker para Windows)

Posterior a de una larga recopilación de datos resolvimos esta pregunta que tienen ciertos usuarios. Te compartimos la respuesta y esperamos resultarte de gran ayuda.

Solución:

Respuesta corta: en la mayoría de los casos, necesitará 10.0.75.1 .

En Docker para Windows, el contenedor se comunica a través de un adaptador vEthernet llamado DockerNAT. Para encontrar sus detalles, abra el símbolo del sistema y escriba

ipconfig

Busque una entrada que se parezca a

Ethernet adapter vEthernet (DockerNAT):

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::fd29:297:4583:3ad4%4
   IPv4 Address. . . . . . . . . . . : 10.0.75.1
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :

La dirección IP a la derecha de IPv4 Address es el que necesitas.

Nota: asegúrese de que el servicio permita conexiones desde fuera de su host. En lo que respecta a ese servicio, su contenedor Docker es una máquina diferente. También asegúrese de que Windows Firewall permita la comunicación desde y hacia el servicio.

Una de las opciones que le permite conectarse de un contenedor a otro es ejecutar su contenedor con el parámetro

--net="host"

Ejemplo:

docker run -it --net="host" container_name

Luego, desde el contenedor, puede conectarse al servicio en el host usando:

localhost:port

Pero en este caso, no podrá vincular más contenedores usando --link parámetro.

Más sobre este tema: http://phillbarber.blogspot.sk/2015/02/connect-docker-to-service-on-parent-host.html

ACTUALIZAR:

De la versión 18.03, puedes usar el nombre DNS host.docker.internal, que se resuelve en la dirección IP interna utilizada por el host.

Más: https://docs.docker.com/docker-for-windows/networking/

En versiones anteriores, puede conectarse al servicio que se ejecuta en el host Windows utilizando la dirección IP que obtiene al ejecutar el comando ipconfig en el host -> Adaptador Ethernet -> Dirección IPv4

ACTUALIZAR
Según el comentario de Datz a continuación, docker.for.win.localhost está funcionando en Docker para Windows (confirmado).

El anfitrión tendrá un host.docker.internal registrado en el DNS predeterminado utilizado por los contenedores. Entonces puedes usar algo como curl http://host.docker.internal/ para acceder a un servidor web que se ejecuta en su máquina, incluso si ese servidor se está ejecutando en otro contenedor, siempre que haya expuesto el puerto.

valoraciones y reseñas

Al final de la post puedes encontrar las acotaciones de otros administradores, tú asimismo eres capaz mostrar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *