Cómo obtener la dirección IP del contenedor docker en ejecución

Estoy usando Docker para Mac. Estoy ejecutando un microservicio basado en nodejs en un contenedor Docker. Quiero probar el microservicio de node a través del navegador. ¿Cómo obtener la dirección IP del contenedor Docker en ejecución?

Si no quieres asignar puertos desde tu host al contenedor puedes acceder directamente a la ip del rango docker para el contenedor. Este rango por defecto sólo se accede desde tu host. Puedes comprobar los datos de la red de tu contenedor haciendo:

docker inspect 

Probablemente es mejor filtrar:

docker inspect  | grep '"IPAddress"' | head -n 1

Normalmente, el rango de ip por defecto de docker es 172.17.0.0/16. Tu host debería ser 172.17.0.1 y tu primer contenedor debería ser 172.17.0.2 si todo es normal y no has especificado ninguna opción de red especial.

EDIT Otra forma más elegante utilizando las características de docker en lugar de "bash tricking":

docker inspect -f "{{ .NetworkSettings.IPAddress }}" 
Comentarios (12)

si quiere obtenerlo directamente dentro del contenedor, puede intentar

ip a | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | grep 172.17
Comentarios (0)

Puedes iniciar tu contenedor con la bandera -P. Esto "asigna" un puerto aleatorio al puerto expuesto de su imagen.

Con docker port puedes ver el puerto elegido al azar. El acceso es entonces posible a través de localhost:port.

Comentarios (0)