Watch at EaseHistorias. Respuestas. Perspectiva.

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.

Diagrama original para demostrar el propietario de la tupla exacta antes de cambiar Docker.
Ilustración original: de la tupla solicitada al cambio mínimo verificado. Watch at Ease

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.

Matriz original de mapeo Docker, socket del host y estado del daemon.
Ilustración original: un error puede pertenecer a tres capas. Watch at Ease