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?
docker
containers
docker-for-mac
usuario3067875
fuente
fuente
Respuestas:
Si no desea asignar puertos desde su host al contenedor, puede acceder directamente a la ip del rango de docker para el contenedor. De forma predeterminada, solo se accede a este rango desde su host. Puede verificar los datos de su red de contenedores haciendo:
Probablemente sea mejor filtrar:
Por lo general, el rango de IP predeterminado de la ventana acoplable es
172.17.0.0/16
. Su host debería ser172.17.0.1
y su primer contenedor debería serlo172.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":
fuente
localhost
:)http://172.17.0.2:anyPort
desde el host. Por supuesto, si desea acceder a él utilizando localhost en el host, debe asignar puertos. Verá lo que quiere el OP.docker run --name struts --rm -i tomcat
2. Obtenga la ip de su contenedor (si solo tiene uno):docker inspect struts | grep '"IPAddress"' | head -n 1
3. Ábralo en el navegador del hosthttp://x.x.x.x:8080
. Puede ver la página predeterminada de Apache Tomcat.Use la
--format
opción para obtener solo la dirección IP en lugar de la información completa del contenedor:fuente
Para los motores docker modernos, use este comando:
y para motores más antiguos use:
fuente
si desea obtenerlo directamente dentro del contenedor, puede intentar
fuente
Puede iniciar su contenedor con la bandera
-P
. Esto "asigna" un puerto aleatorio al puerto expuesto de su imagen.Con
docker port <container id>
puede ver el puerto elegido al azar. El acceso entonces es posible a través delocalhost:port
.fuente
Para mi caso, a continuación funcionó en Mac :
No pude acceder a las direcciones IP del contenedor directamente en Mac. Necesito usar
localhost
con el reenvío de puertos, por ejemplo, si el puerto es 8000, entonceshttp://localhost:8000
Consulte https://docs.docker.com/docker-for-mac/networking/#known-limitations-use-cases-and-workarounds
La respuesta original fue de: https://github.com/docker/for-mac/issues/2670#issuecomment-371249949
fuente
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 del host al puerto del contenedor pasando
-p 8080:8080
al comando ejecutar.Pasando
-p
, puede asignar el puerto del host al puerto del contenedor y se configura un proxy para reenviar todo el tráfico de dicho puerto del host al puerto del contenedor designado.fuente