machine - Accediendo al equipo host como localhost desde un contenedor Docker que también está dentro de un boot2docker vm
how to use docker (2)
En lugar de ejecutar con --net="host"
, pruebe --add-host="localhost:192.168.59.3"
, que es la IP del host boot2docker.
Supongamos que tengo un servidor ejecutándose en el puerto 8000 en OSX. ¿Cómo puede acceder mi contenedor Docker a través de localhost:8000
? No puedo cambiar el nombre de host también porque la aplicación en el contenedor no está bajo mi control.
He leído este debate anterior sobre el uso de --net="host"
para que un contenedor acceda a la red de la máquina host. Sin embargo, estoy en OSX y Docker se ejecuta dentro de una máquina virtual, por lo que localhost desde el contenedor Docker con --net="host"
va a la VM y no a mi máquina real.
Entonces probé la solución de reenvío de puertos de esta manera: VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port8000,tcp,,8000,,8000";
en vano.
Cualquier sugerencia sería muy apreciada.
Gracias a la respuesta de palimpestor lo descubrí:
En lugar de --net="host"
, use --add-host="localhost:10.0.2.2"
En efecto:
- 10.0.2.2 es la puerta de enlace predeterminada definida para la interfaz de red de invitado en modo NAT ( reference ).
Leer: es tu anfitrión, visto desde boot2docker. -
--add-host...
está agregandolocalhost 10.0.2.2
en / etc / hosts ( reference )
Nota: debe haber configurado un adaptador NAT en su configuración boot2docker VM VirtualBox (lo hice a través de la GUI, no conozco la CLI).