Mit docker prune entfernst du ungenutzte Container, Images und Volumes und schaffst wieder freien Speicher. Inklusive Beispiele und Best Practices für echte Projekte.
Der docker prune-Befehl umfasst mehrere Varianten, mit denen sich unterschiedliche Arten ungenutzter Ressourcen entfernen lassen. In der Praxis sammeln sich diese Ressourcen oft schneller an als erwartet – insbesondere in Projekten mit häufigen Builds oder Deployments.
Gerade in Backend-Systemen, etwa bei Django-Anwendungen mit Docker, kann fehlendes Cleanup langfristig zu Speicherproblemen und instabilen Umgebungen führen.
Gestoppte Container bleiben nach ihrer Ausführung bestehen und belegen weiterhin Speicher. In lokalen Entwicklungsumgebungen fällt das oft nicht sofort auf, in produktionsnahen Setups jedoch schon.
Mit folgendem Befehl entfernst Du alle gestoppten Container:
docker container prune
Docker fragt standardmäßig nach einer Bestätigung. Für automatisierte Abläufe – etwa in CI/CD-Pipelines – wird meist direkt die --force-Option verwendet:
docker container prune --force
Nach der Ausführung bleiben ausschließlich laufende Container erhalten.
Volumes speichern Daten unabhängig vom Lebenszyklus eines Containers. Genau das ist ihr Zweck – führt aber auch dazu, dass sich schnell verwaiste Volumes ansammeln.
Diese lassen sich mit folgendem Befehl entfernen:
docker volume prune
Auch hier kannst Du die Bestätigung überspringen:
docker volume prune --force
Gelöscht werden alle Volumes, die aktuell von keinem Container verwendet werden.
Mit der Zeit entstehen viele Images, insbesondere sogenannte „dangling images“. Diese haben keine Referenz mehr und sind häufig das Ergebnis von Builds.
Zum Entfernen:
docker image prune
Oder ohne Rückfrage:
docker image prune --force
Wenn Du zusätzlich alle nicht verwendeten Images entfernen möchtest (nicht nur „dangling“), kannst Du die Option --all verwenden:
docker image prune --all
Dabei solltest Du vorsichtig sein, da auch Images gelöscht werden, die möglicherweise später wieder benötigt werden.
Docker erstellt für Container häufig eigene Netzwerke, die nach deren Beendigung bestehen bleiben.
Diese kannst Du so bereinigen:
docker network prune
Oder ohne Bestätigung:
docker network prune --force
Gelöscht werden alle Netzwerke, die aktuell nicht aktiv genutzt werden.
Wenn Du eine vollständige Bereinigung durchführen möchtest, kannst Du alle genannten Schritte zusammenfassen:
docker system prune
Mit --force entfällt die Nachfrage:
docker system prune --force
Standardmäßig bleiben Volumes erhalten. Falls auch diese entfernt werden sollen:
docker system prune --all --volumes
Dieser Befehl führt eine vollständige Bereinigung durch und entfernt sämtliche ungenutzten Ressourcen.
In einer typischen Entwicklungsumgebung oder einem Projekt mit häufigen Deployments sammelt sich schnell eine große Menge an ungenutzten Ressourcen an.
Ein strukturierter Cleanup könnte so aussehen:
Zuerst entfernst Du gestoppte Container:
docker container prune --force
Anschließend werden nicht mehr benötigte Images gelöscht:
docker image prune --all --force
Danach bereinigst Du die Volumes:
docker volume prune --force
Und zum Schluss die Netzwerke:
docker network prune --force
Alternativ kannst Du diesen Prozess auch in einem Schritt durchführen:
docker system prune --all --volumes --force
Diese Befehle helfen dabei, Symptome zu beheben – nämlich angesammelte Ressourcen. In realen Projekten liegt die Ursache jedoch oft tiefer: in unklaren Deployments, fehlender Struktur oder inkonsistentem Umgang mit Containern.
Gerade bei Django-Projekten zeigt sich schnell, dass saubere Architektur, klare Trennung von Services und kontrollierte Deployments entscheidend sind.
Wenn Dich interessiert, wie ein wartbares Projekt strukturiert sein sollte, findest Du hier eine ausführliche Erklärung:
Finden Sie interessante und zum Thema passende Kurse
In diesem zweitägigen Vollzeitseminar lernen Sie, was Container sind und wie Sie Docker gezielt erstellen, verwalten und in Projekten einsetzen. Der Fokus liegt auf einem fundierten Verständnis von Docker von Grund auf und der praxisnahen Anwendung in realen Entwicklungsszenarien.
2 Tage Vollzeit Online
In diesem zweitägigen Git- & GitHub-Einführungskurs lernen Sie, Versionskontrolle sicher und praxisnah einzusetzen. Von den ersten Commits bis zur Zusammenarbeit mit Branches und Pull Requests erwerben Sie genau das Wissen, das Sie für effiziente Teamarbeit und saubere Projektabläufe benötigen.
2 Tage Vollzeit Online
Gerne unterstütze ich Sie bei der Auswahl oder stelle eine individuell passende Schulung für Ihre Anforderungen zusammen.