Docker bricht mit 'no space left on device' ab, obwohl scheinbar Platz da ist? Alte Images, Container und Build-Cache fressen die Platte. So räumst du auf.
Aufwand:
ca. 10 Min.
Voraussetzung:
Terminal
Das Symptom
Du startest einen Build oder ziehst ein Image, und Docker bricht mitten drin ab:
no space left on device. Der Blick auf das Projekt verwirrt – da liegen ein
paar Megabyte Code, mehr nicht. Trotzdem behauptet Docker steif und fest, die
Platte sei voll.
Die „Layer 8“-Wahrheit
Docker ist ein stiller Messie. Jedes gebaute Image, jeder gestoppte Container,
jede Zwischenschicht eines Builds wird fein säuberlich aufbewahrt – für den Fall,
dass man sie nochmal braucht. Nur räumt niemand hinterher auf, und so wächst das
Docker-Datenverzeichnis im Verborgenen, bis es die ganze Platte belegt. Deshalb
täuscht der Blick aufs Projekt: Der Platz ist nicht im Code, sondern in Dockers
Erinnerungsstücken verschwunden – ungenutzte Images, tote Container, ein
aufgeblähter Build-Cache. Die Lösung ist kein größeres Laufwerk, sondern ein
beherzter, aber überlegter Frühjahrsputz. Nur bei den Volumes lohnt der zweite
Blick: Dort liegen oft die einzigen Daten, die man wirklich behalten will.
Die echte, verifizierte Lösung
1000 % faktenbasiert. Jeder Befehl ist real, jeder Pfad existiert. Schritt für Schritt:
1.
Den Verbrauch sichtbar machen
Zuerst zeigen lassen, wer den Platz belegt – Images, Container, Volumes und Build-Cache getrennt aufgeschlüsselt. So räumst du gezielt statt blind:
docker system df
2.
Gestoppte Container und dangling Images entfernen
Der sichere Grundputz: gestoppte Container, ungenutzte Netzwerke, unbenannte Images und Build-Cache löschen. Laufende Container und benannte Images bleiben unberührt:
docker system prune
3.
Wirklich ungenutzte Images abräumen
Bringt das zu wenig, auch alle Images entfernen, die kein Container nutzt. Das schafft am meisten Platz, lädt aber benötigte Images beim nächsten Start neu herunter:
docker image prune -a
4.
Verwaiste Volumes gezielt prüfen
Volumes können wichtige Daten (z. B. Datenbanken) enthalten. Erst auflisten, dann bewusst entscheiden, welche wirklich weg dürfen – nicht pauschal löschen:
docker volume ls
docker volume prune
5.
Den Build-Cache getrennt leeren
Bei vielen Builds ist der Cache oft der größte Brocken. Er lässt sich separat entfernen, ohne Images anzutasten:
docker builder prune
6.
Das Host-Dateisystem gegenprüfen
Ist die Platte trotz Aufräumen voll, liegt es vielleicht gar nicht an Docker. Den freien Platz des Systems prüfen und notfalls das Docker-Datenverzeichnis auf ein größeres Laufwerk verlegen:
df -h
Häufige Fragen (FAQ)
?Wohin verschwindet der Docker-Speicherplatz?
Docker sammelt über die Zeit ungenutzte Images, gestoppte Container, verwaiste Volumes und vor allem Build-Cache an. Gerade häufige Builds hinterlassen Schicht um Schicht, die niemand mehr braucht. Diese Reste liegen unter dem Docker-Datenverzeichnis und füllen die Platte, während das eigentliche Projekt winzig wirkt.
?Ist docker system prune gefährlich?
Es löscht alles, was Docker als 'ungenutzt' einstuft – gestoppte Container, ungenutzte Netzwerke, dangling Images und Build-Cache. Mit dem Zusatz -a auch alle Images, die kein vorhandener Container nutzt, mit --volumes zusätzlich Volumes. Volumes enthalten oft Datenbank-Daten, deshalb hier besonders vorsichtig sein und vorher prüfen, was wirklich weg darf.
Belege
Diese Seite ist gegen die folgenden Primärquellen geprüft – Hersteller, Standard oder Gesetzestext. Wer es nicht glaubt, muss es nicht: Da steht, wo es nachzulesen ist.