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 <containerNameOrId>
Probablemente es mejor filtrar:
docker inspect <containerNameOrId> | 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 }}" <containerNameOrId>
Puedes iniciar tu contenedor con la bandera -P
. Esto "asigna" un puerto aleatorio al puerto expuesto de su imagen.
Con docker port <container id>
puedes ver el puerto elegido al azar. El acceso es entonces posible a través de localhost:port
.