tag listar imagenes imagen hub detener crear contenedores contenedor comando docker containers docker-for-mac

listar - Cómo obtener la dirección IP del contenedor Docker en ejecución



listar contenedores en docker (7)

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


No puede acceder a la IP de la ventana acoplable desde fuera de esa máquina host. Si su navegador está en otra máquina, es mejor asignar el puerto host al puerto contenedor pasando -p 8080:8080 para ejecutar el comando.

Al pasar -p puede asignar el puerto del host al puerto del contenedor y se establece un proxy para reenviar todo el tráfico para dicho puerto del host al puerto del contenedor designado.


Para los motores docker modernos, use este comando:

docker inspect -f ''{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'' container_name_or_id

y para motores más viejos use:

docker inspect --format ''{{ .NetworkSettings.IPAddress }}'' container_name_or_id



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

Con el docker port <container id> puede ver el puerto elegido al azar. El acceso es posible a través de localhost:port .


Si no desea asignar puertos desde su host al contenedor, puede acceder directamente a la ip de Docker Range para el contenedor. Por defecto, solo se accede a este rango desde su host. Puede verificar los datos de su red de contenedores haciendo:

docker inspect <containerNameOrId>

Probablemente sea mejor filtrar:

docker inspect <containerNameOrId> | grep ''"IPAddress"'' | head -n 1

Por lo general, el rango de ip predeterminado de 172.17.0.0/16 es 172.17.0.0/16 . Su host debería ser 172.17.0.1 y su primer contenedor debería ser 172.17.0.2 si todo es normal y no especificó ninguna opción de red especial.

EDITAR Otra forma más elegante de usar las funciones de Docker en lugar de "bash tricking"

docker inspect -f "{{ .NetworkSettings.IPAddress }}" <containerNameOrId>


Use la opción --format para obtener solo la dirección IP en lugar de toda la información del contenedor:

sudo docker inspect --format ''{{ .NetworkSettings.IPAddress }}'' <CONTAINER ID>


si desea 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