Desarrolladores
No se puede acceder a un contenedor Docker desde el Mac
Docker en un Mac ejecuta los contenedores en una máquina virtual Linux. Para acceder a un contenedor desde macOS, normalmente publicas un puerto en localhost.
Síntomas
curl localhost:8080falla, pero el servicio funciona dentro del contenedor.- No puedes hacer ping ni conectarte a la dirección IP del contenedor.
- No aparece ninguna interfaz
docker0en el Mac. - El servicio funciona en Linux pero no en el Mac.
Causas probables
- El puerto no está publicado. Sin
-p, Docker Desktop no reenvía el puerto al Mac. - IP de contenedores en Docker Desktop. La documentación de Docker para Docker Desktop dice que su red bridge no es accesible desde el host.
- El servicio escucha en 127.0.0.1 dentro del contenedor. Entonces solo el propio contenedor puede conectarse a él.
- Una pareja de puertos incorrecta. En
-p 8080:80, 8080 es el puerto del Mac y 80 es el puerto del contenedor.
Cómo comprobarlo
Muestra los contenedores en ejecución y sus puertos publicados.
docker psSalida La columna PORTS muestra parejas como
0.0.0.0:8080->80/tcp. Si no hay pareja, el puerto no está publicado.Muestra los puertos publicados de un contenedor.
docker port my-containerPrueba el servicio desde dentro del contenedor, si la imagen incluye wget. Si hay respuesta, el servicio funciona.
docker exec my-container wget -qO- http://localhost:80Mira qué proceso del Mac escucha en el puerto.
lsof -nP -iTCP:8080 -sTCP:LISTEN
Cómo solucionarlo
Inicia el contenedor con un puerto publicado. El primer número es el puerto del Mac.
docker run -d -p 8080:80 nginxConéctate desde el Mac con localhost y el puerto del Mac.
curl http://localhost:8080Haz que el servicio del contenedor escuche en 0.0.0.0, no en 127.0.0.1. Consulta su documentación para ver el ajuste.
Si el puerto del Mac está en uso, elige otro puerto del Mac. Consulta Puerto ya en uso en un Mac.
Con OrbStack, también puedes usar la dirección IP del contenedor o su nombre
container-name.orb.local.
Con Kilobat
Las comprobaciones de Kilobat se ejecutan en el Mac. Usa
--context containercuando el código que falla se ejecuta en un contenedor. El informe termina entonces con un comando para ejecutar allí.kilobat why http://localhost:8080 --context container
Preguntas
¿Por qué no puedo hacer ping a un contenedor en Docker Desktop?
La documentación de Docker dice que Docker Desktop no puede enrutar tráfico desde el Mac hacia los contenedores Linux. Publica un puerto en su lugar.
¿OrbStack funciona de otra forma?
Sí. La documentación de OrbStack dice que puedes conectarte a los contenedores desde el Mac por dirección IP y por nombres .orb.local.
Fuentes
- Docker Docs: Explore networking how-tos on Docker Desktop
- Docker Docs: Networking on Docker Desktop
- OrbStack Docs: Container networking
- lsof(8), página man instalada con macOS 27.2
Fuentes revisadas el 29 de octubre de 2026. Las páginas man son las que se instalan con macOS; abre una con man <name> en Terminal.