Ein Container startet nicht und Docker meldet „port is already allocated“? Das bedeutet, dass der gewünschte Host-Port bereits belegt ist. In dieser Anleitung zeigen wir dir, wie du den Fehler „port is already allocated“ findest und behebst.
- Die Fehlermeldung im Wortlaut
- Warum tritt der Fehler auf?
- Lösung 1: Den belegenden Prozess finden
- Lösung 2: Einen anderen Host-Port wählen
- Lösung 3: Verwaiste Container aufräumen
- Häufige Fragen
- Wie finde ich heraus, welcher Container den Port belegt?
- Muss ich Docker neu starten?
- Welche Portnummer sollte ich wählen?
- Fazit
Die Fehlermeldung im Wortlaut
Error response from daemon: driver failed programming external connectivity
on endpoint web: Bind for 0.0.0.0:8080 failed: port is already allocatedWarum tritt der Fehler auf?
Jeder Host-Port kann nur von einem Dienst gleichzeitig genutzt werden. Läuft bereits ein anderer Container oder Prozess auf dem Port (hier 8080), kann Docker ihn nicht ein zweites Mal binden.
Lösung 1: Den belegenden Prozess finden
Finde heraus, was den Port belegt:
sudo ss -tlnp | grep :8080
# oder
sudo lsof -i :8080Ist es ein anderer Container, zeigt ihn auch docker ps. Stoppe den blockierenden Container oder Dienst, wenn du ihn nicht brauchst.
Lösung 2: Einen anderen Host-Port wählen
Brauchst du beide Dienste, ändere in der docker-compose.yml oder im docker run-Befehl den Host-Port (die Zahl links vom Doppelpunkt):
ports:
- "8081:80" # Host-Port 8081 statt 8080Der Container-Port rechts bleibt gleich – nur der Host-Port muss frei sein.
Lösung 3: Verwaiste Container aufräumen
Manchmal hält ein gestoppter, aber nicht entfernter Container den Port. Räume auf mit:
docker compose down
docker container pruneMehr dazu unter Docker aufräumen. Wie Ports grundsätzlich funktionieren, erklärt Docker Netzwerke erklärt.
Häufige Fragen
Wie finde ich heraus, welcher Container den Port belegt?
docker ps zeigt in der Spalte PORTS, welcher Container welchen Host-Port nutzt. Für Nicht-Container-Prozesse verwendest du sudo ss -tlnp oder lsof -i :PORT.
Muss ich Docker neu starten?
Meist nicht. Es genügt, den blockierenden Prozess zu stoppen oder einen freien Host-Port zu wählen. Nur bei hartnäckig „hängenden“ Bindungen hilft ein Neustart des Docker-Dienstes.
Welche Portnummer sollte ich wählen?
Einen freien Port oberhalb von 1024, der von keinem anderen Dienst genutzt wird – etwa 8081, 8082 usw. Prüfe mit ss -tlnp, ob er frei ist.
Fazit
„port is already allocated“ heißt: Der Host-Port ist belegt. Finde den blockierenden Prozess mit ss oder docker ps, stoppe ihn oder weiche auf einen freien Host-Port aus. Verwaiste Container räumst du mit docker container prune auf.

