«address already in use»: qué programa ocupa el puerto
Un servicio o contenedor no arranca porque «el puerto ya está en uso».
Por qué pasa (diagnóstico)
- Otro servicio escucha en ese puerto (p. ej. Apache en el 80, systemd-resolved en el 53).
- Un contenedor antiguo sigue vivo.
Solución paso a paso
- Mira quién escucha:
sudo ss -ltnp(TCP) osudo ss -lunp(UDP). - Filtra:
sudo ss -ltnp | grep :PUERTO. - Para el programa culpable o cambia el puerto del nuevo servicio.
- En Docker, revisa contenedores parados con
docker ps -a.
Requisitos
- Linux (iproute2)
Compatibilidad
- Cualquier distribución Linux moderna
Verificación
Basado en la documentación oficial citada; aún no probado en este laboratorio.
Fuentes
- man ss (en inglés)
Guías relacionadas
- Los logs de systemd (journal) se comen el disco
- Un servicio de systemd no arranca: cómo ver el porqué
- Mi script funciona a mano pero no desde cron
- Docker: «permission denied … docker.sock» sin sudo
- Disco lleno por Docker (imágenes, caché y logs)
- Un contenedor no arranca solo tras reiniciar
Más guías de Linux y Docker.