Tecnología · GUÍA PRÁCTICA
¿Docker dice “port is already allocated”? Demuestra el propietario antes de cambiar nada
El conflicto puede pertenecer a otro contenedor, un proceso del host, un mapeo duplicado de Compose o el estado del daemon. Fija IP, protocolo y puerto exactos y cambia solo al propietario verificado.

El error solo demuestra que Docker no pudo reclamar una tupla de socket del host; no identifica al propietario ni justifica matar todos los listeners o borrar contenedores ajenos.
Anota primero IP, protocolo y puerto del host, por ejemplo 0.0.0.0, TCP y 8080. Compara los mapeos Docker y listeners del host contra esa misma tupla.
Fija la tupla exacta y el contexto Docker
Guarda el error completo, context, proyecto y archivos Compose, IP/puerto del host, puerto del contenedor y TCP/UDP. No lo reduzcas a “8080”.
Renderiza la configuración efectiva o conserva docker run y busca duplicados, overrides, réplicas o dos servicios que pidan la misma tupla.
Encuentra todos los mapeos Docker
Usa el filtro publish de docker ps -a con puerto y protocolo exactos; inspecciona contenedores y etiquetas de proyecto en todos los contextos relevantes.
Si un contenedor de otro proyecto es el dueño real, confirma el impacto antes de detenerlo o remapearlo.
Demuestra el listener del host por separado
En Linux usa ss; en Windows filtra Get-NetTCPConnection por LocalPort y compara LocalAddress, State y OwningProcess.
Relaciona el PID con servicio o ejecutable. docker-proxy/dockerd suele volver a un contenedor; otra aplicación es la rama del host.
Clasifica antes de reparar
Cambia solo el contenedor, proceso o configuración duplicada que hayas verificado.
Si ambas listas están vacías, guarda logs, versión, context, modo de red y comando fallido; usa reinicio o actualización como prueba limitada.
Cierra con prueba de salida doble
Repite inventarios Docker y host. Solo el propietario esperado debe conservar la tupla exacta y lo demás debe quedar igual.
Arranca el servicio, inspecciona el mapeo, prueba desde la ubicación prevista y guarda el código de salida.
