que machine how docker boot2docker

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á agregando localhost 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).