Docker prune entfernt unnötige Objekte wie gestoppte Container, nicht ver­wen­de­te Volumes, alte Netzwerke oder Images. Auf diese Weise op­ti­mie­ren Sie die Fest­plat­ten­nut­zung und geben Spei­cher­platz frei.

Was ist Docker prune?

Docker prune bzw. system prune ist nützlich, um nicht mehr benötigte Docker-Res­sour­cen sys­te­ma­tisch zu be­rei­ni­gen und somit mehr Speicher zu gewinnen. Wenn Docker-Container, Images, Netzwerke und Volumes über einen längeren Zeitraum ungenutzt bleiben, können sie eine be­trächt­li­che Menge an Spei­cher­platz belegen. Mit prune können Sie diese un­ge­nutz­ten Res­sour­cen schnell be­sei­ti­gen und so das System sauber und per­for­mant halten.

Ins­be­son­de­re in Ent­wick­lungs­um­ge­bun­gen, wo häufig neue Container erstellt und getestet werden, kann sich eine Vielzahl von ver­al­te­ten Objekten ansammeln. Docker prune räumt nicht nur Container und Bilder auf, sondern auch Netzwerke und Volumes, die Sie nicht mehr benötigen. Dadurch wird die Ver­wal­tung der Docker-Res­sour­cen deutlich ver­ein­facht und das Risiko eines un­über­sicht­li­chen und über­la­de­nen Systems minimiert.

Wofür wird Docker prune ein­ge­setzt?

Das prune-Kommando eignet sich für ver­schie­de­ne Si­tua­tio­nen bei der täglichen Arbeit mit Docker. Nach­fol­gend haben wir vier typische Szenarien für die Nutzung auf­ge­führt.

Ar­beits­pro­zes­se op­ti­mie­ren: Docker-Um­ge­bun­gen werden häufig intensiv für Ent­wick­lungs-, Test- und Pro­duk­ti­ons­zwe­cke verwendet. Ohne re­gel­mä­ßi­ge Be­rei­ni­gung kann es schnell zu einer Ak­ku­mu­la­ti­on nicht mehr be­nö­tig­ter Res­sour­cen kommen. Diese Über­la­dung führt nicht nur zu einem erhöhten Spei­cher­be­darf, sondern kann auch die Sys­tem­leis­tung negativ be­ein­flus­sen. Indem Docker prune un­ge­nutz­te Res­sour­cen entfernt, werden die Sys­tem­res­sour­cen ef­fi­zi­en­ter genutzt. Dies ist besonders in cloud­ba­sier­ten Um­ge­bun­gen ent­schei­dend, wo die Kosten mit dem Bedarf an Speicher- und Re­chen­res­sour­cen steigen.

Si­cher­heit erhöhen: Über­flüs­si­ge und veraltete Docker-Res­sour­cen können Si­cher­heits­ri­si­ken dar­stel­len. Docker prune entfernt un­ge­nutz­te Container, Images, Netzwerke und Volumes, wodurch das Risiko ver­rin­gert wird, dass veraltete und mög­li­cher­wei­se unsichere Kom­po­nen­ten un­ge­schützt bleiben. Ein sauberes Docker-Ökosystem trägt dazu bei, die An­griffs­flä­che zu mi­ni­mie­ren und die Si­cher­heits­la­ge der gesamten IT-In­fra­struk­tur zu ver­bes­sern.

Leistung steigern: Eine über­la­de­ne Docker-Umgebung kann die Sys­tem­leis­tung be­ein­träch­ti­gen, indem sie Res­sour­cen wie CPU und Speicher unnötig belastet. Durch die re­gel­mä­ßi­ge Be­rei­ni­gung mit Docker prune wird Spei­cher­platz frei­ge­ge­ben und die Effizienz der Container-Ver­wal­tung und -Aus­füh­rung ge­stei­gert. Dies führt zu deutlich kürzeren La­de­zei­ten, schnel­le­ren Be­reit­stel­lun­gen von An­wen­dun­gen und insgesamt zu einer besseren Re­ak­ti­ons­fä­hig­keit des Systems.

Ver­ein­fach­te Wartung: Die re­gel­mä­ßi­ge Durch­füh­rung von Docker prune ver­ein­facht die Wartung Ihrer Docker-Umgebung erheblich. Das Entfernen un­ge­nutz­ter Res­sour­cen reduziert die Kom­ple­xi­tät der Ver­wal­tungs­auf­ga­ben für Ent­wick­le­rin­nen und Ent­wick­ler. Es ist zudem einfacher, den Überblick über die aktiven und re­le­van­ten Docker-Kom­po­nen­ten zu behalten, was die Feh­ler­dia­gno­se und -behebung be­schleu­nigt. Dies spart nicht nur Zeit bei der Ver­wal­tung, sondern er­mög­licht Teams, sich mehr auf die Ent­wick­lung und Ver­bes­se­rung ihrer An­wen­dun­gen zu kon­zen­trie­ren, anstatt mit über­flüs­si­gen Res­sour­cen zu kämpfen.

Syntax: Wie wird Docker prune verwendet?

Sie haben eine Docker-Umgebung und möchten Res­sour­cen be­rei­ni­gen, um Spei­cher­platz frei­zu­ge­ben und die Ver­wal­tung zu ver­ein­fa­chen? In diesem Fall führen Sie einfach den folgenden Befehl aus, um auf die Dienste von prune zu­rück­zu­grei­fen:

docker system prune
bash

Stan­dard­mä­ßig werden gestoppte Container, nicht mehr ver­wen­de­te Images, Netzwerke und un­ge­nutz­te Volumes iden­ti­fi­ziert und zur Be­rei­ni­gung vor­ge­schla­gen. Docker bittet um Ihre Be­stä­ti­gung, diese zu entfernen. Geben Sie y ein und drücken Sie die Ein­ga­be­tas­te. Al­ter­na­tiv können Sie auch direkt die Option -f verwenden, um die Be­stä­ti­gung zu über­sprin­gen und die Be­rei­ni­gung sofort aus­zu­füh­ren:

docker system prune -f
bash

Tipp: Es ist sinnvoll, vor der Anwendung von Docker prune zu über­prü­fen, welche Docker-Res­sour­cen derzeit auf dem System vorhanden sind. Führen Sie folgende Befehle aus, um eine Liste aller Container, Bilder, Netzwerke und Volumes zu erhalten:

docker ps -a
docker images
docker volume ls
docker network ls
bash

Docker prune Optionen

Die folgende Tabelle gibt Ihnen eine Übersicht über die ver­schie­de­nen Optionen von docker system prune.

Option Be­schrei­bung
--all, -a Entfernt alle un­be­nutz­ten Docker-Res­sour­cen.
--force, -f Führt die Be­rei­ni­gung ohne Be­nut­zer­be­stä­ti­gung durch.
--volumes Entfernt un­ge­nutz­te Volumes.
--filter, -f Erlaubt das Filtern der zu ent­fer­nen­den Res­sour­cen nach Kriterien.
--help Zeigt eine Hilfe zur Ver­wen­dung des Befehls an.

Docker prune: Tutorial zur prak­ti­schen Anwendung des Befehls

Docker bietet ver­schie­de­ne Befehle, die eine gezielte Be­rei­ni­gung spe­zi­fi­scher Res­sour­cen­ar­ten erlauben. Dies gibt Ihnen die Fle­xi­bi­li­tät, genau zu kon­trol­lie­ren, welche Res­sour­cen entfernt werden sollen.

Docker prune --filter

Sie können Filter einsetzen, um die Auswahl der zu ent­fer­nen­den Res­sour­cen zu steuern, wie zum Beispiel Container, Images, Netzwerke und Volumes. Dies ist vor­teil­haft in Ent­wick­lungs­um­ge­bun­gen, in denen schnell viele temporäre Res­sour­cen erstellt und vergessen werden können.

Die all­ge­mei­ne Syntax lautet:

docker <command> prune --filter "filter=<value>"
bash

Zu den ver­schie­de­nen Fil­ter­op­tio­nen gehören:

  • until: Filtert Res­sour­cen basierend auf ihrem Er­stel­lungs­da­tum. Dabei kann <duration> ein nu­me­ri­scher Wert mit einer Einheit wie h (Stunden), m (Minuten) oder s (Sekunden) sein.
docker <command> prune --filter "until=<duration>"
bash

Beispiel: Alle ge­stopp­ten Container entfernen, die älter als 24 Stunden sind

docker container prune --filter "until=24h"
bash
  • label: Filtert Res­sour­cen basierend auf ihren Docker-Labels
docker <command> prune --filter "label=<label>"
bash

Beispiel: Alle un­ge­nutz­ten Volumes be­rei­ni­gen, die das Label mylabel haben

docker volume prune --filter "label=mylabel"
bash
  • dangling: Filtert Res­sour­cen, die nicht mehr von einem Container verwendet werden
docker <command> prune --filter "dangling=true"
bash

Beispiel: Alle nicht mehr ver­wen­de­ten (dangling) Images entfernen*

docker image prune --filter "dangling=true"
bash

Neben den oben genannten Haupt­fil­tern gibt es auch spe­zi­fi­sche­re Fil­ter­op­tio­nen je nach Res­sour­cen­typ:

  • before und since für Images: Filtert Images basierend auf ihrem Er­stel­lungs­da­tum, entweder vor oder seit einem be­stimm­ten Zeitpunkt
  • exited für Container: Filtert Container basierend auf ihrem Exit-Status (zum Beispiel exited=0 für er­folg­reich beendete Container)

Docker-Res­sour­cen entfernen

Schritt 1: Öffnen Sie ein Terminal oder eine Be­fehls­zei­le auf Ihrem System.

Schritt 2: Führen Sie Docker prune zur Be­rei­ni­gung des Systems aus:

docker {resource} prune
bash

Ersetzen Sie {resource} durch den Typ der Res­sour­cen, die Sie be­rei­ni­gen möchten. Gültige Werte sind container, image, volume und network.

Docker-Container entfernen

Stan­dard­mä­ßig gibt Docker Container nicht au­to­ma­tisch frei, nachdem diese ihren Le­bens­zy­klus beendet haben. Daher ist es wichtig, re­gel­mä­ßig die ge­stopp­ten Container zu über­prü­fen und sie bei Bedarf zu be­rei­ni­gen, um die blo­ckier­ten Res­sour­cen für laufende Container verfügbar zu machen. Hierfür gibt es zwei Methoden.

  • docker rm: Der Befehl docker rm ist dafür gedacht, einzelne oder mehrere Docker-Container manuell zu entfernen. Wenn Sie genau wissen, welche Container gelöscht werden sollen, ist dies die passende Methode. Sie müssen die IDs oder Namen der Container explizit angeben, die Sie entfernen möchten. So können Sie nur bestimmte Container aus Ihrer Umgebung entfernen, ohne andere Container zu be­ein­flus­sen.

Hier ist ein Beispiel, um die Container mit den Namen container1 und container2 zu löschen:

docker rm container1 container2
bash
  • docker container prune: Im Gegensatz dazu ist docker container prune ein Befehl, der darauf abzielt, mehrere gestoppte Container auf einmal zu entfernen. Diese Methode eignet sich besonders gut, um schnell und effizient Platz frei­zu­ge­ben, indem alle ge­stopp­ten Container gelöscht werden, die aktuell keine laufenden Prozesse haben.
docker container prune
bash

Hierbei werden alle ge­stopp­ten Container auf­ge­lis­tet. Docker fordert Sie zur Be­stä­ti­gung auf, bevor sie entfernt werden. Dies ist äußerst praktisch in Um­ge­bun­gen, in denen viele temporäre Container erstellt und später nicht mehr benötigt werden.

Für die tägliche Ver­wal­tung und Wartung Ihrer Docker-Umgebung ist es ratsam, docker container prune re­gel­mä­ßig zu verwenden, um gestoppte Container au­to­ma­tisch zu be­rei­ni­gen. Dies spart Zeit und stellt sicher, dass keine unnötigen Res­sour­cen die Sys­tem­leis­tung be­ein­träch­ti­gen. docker rm hingegen ist ideal, wenn Sie gezielt und kon­trol­liert bestimmte Container löschen möchten, sei es für Tests, Ent­wick­lung oder andere spe­zi­fi­sche An­for­de­run­gen.

Docker-Images entfernen

Docker-Images sind die Bausteine von Con­tai­nern. Sie können im Laufe der Zeit viele ver­schie­de­ne Versionen und Tags haben. Wenn Sie neue Images erstellen oder ak­tua­li­sie­ren, bleiben häufig alte oder nicht mehr ver­wen­de­te Images zurück, die als „dangling“ be­zeich­net werden. Diese nehmen Spei­cher­platz auf Ihrem System in Anspruch und können die Leistung be­ein­träch­ti­gen, ins­be­son­de­re wenn viele solcher Images vorhanden sind.

Mit Docker prune können Sie nicht mehr ver­wen­de­te Images iden­ti­fi­zie­ren und entfernen:

docker image prune [Options]
bash

Mögliche Optionen sind hierbei zum Beispiel:

  • -a, --all: Diese Option entfernt nicht nur dangling Images, sondern auch un­be­nutz­te Images. Un­be­nutz­te Images sind solche, die keine Tags mehr haben und daher nicht direkt durch Tags re­fe­ren­ziert werden können.
docker image prune -a
bash
  • -f, --force: Stan­dard­mä­ßig fordert Docker eine Be­stä­ti­gung an, bevor Images tat­säch­lich gelöscht werden. Mit -f oder --force können Sie diesen Be­stä­ti­gungs­schritt über­sprin­gen und die Be­rei­ni­gung sofort durch­füh­ren.
docker image prune -f
bash

Alle Docker-Images entfernen

Sie können auch alle nicht mehr be­nö­tig­ten Docker-Images auf Ihrem System umfassend und schnell be­rei­ni­gen. Um Docker prune effektiv ein­zu­set­zen, öffnen Sie zuerst das Terminal bzw. die Ein­ga­be­auf­for­de­rung und geben dort den folgenden Befehl ein:

docker image prune -a --force
bash

Sorgen Sie dafür, dass Sie nach­voll­zie­hen können, welche Images entfernt werden sollen, bevor Sie die Be­rei­ni­gung durch­füh­ren. Die Option -a kann auch un­be­nutz­te Images löschen, die mög­li­cher­wei­se noch benötigt werden.

Docker-Volumes entfernen

Volumes sind per­sis­tent und speichern Daten auch dann, wenn der zu­ge­hö­ri­ge Container nicht mehr läuft. Diese Volumes können im Laufe der Zeit anwachsen und unnötig Res­sour­cen belegen.

docker volume prune
bash

Dieser Befehl sucht nach allen Volumes, auf denen es keine aktiven Container mehr gibt. Sie erhalten eine Liste mit Volumes, die zur Ent­fer­nung vor­ge­schla­gen werden. Zudem ist eine Be­stä­ti­gung er­for­der­lich, bevor die Be­rei­ni­gung tat­säch­lich durch­ge­führt wird.

Im Gegensatz dazu ist docker volume rm ein Kommando, das gezielt einzelne Docker-Volumes entfernt. Dies kann nützlich sein, wenn Sie genau wissen, welches Volume gelöscht werden soll, un­ab­hän­gig davon, ob es von einem Container verwendet wird oder nicht. Um ein be­stimm­tes Docker-Volume zu entfernen, nutzen Sie den Befehl docker volume rm gefolgt vom Namen oder der ID des Volumes:

docker volume rm volume_name
bash

Stellen Sie auch hier sicher, dass Sie den genauen Namen oder die ID des zu lö­schen­den Volumes kennen, da dieser Befehl die Daten dauerhaft entfernt und nicht rück­gän­gig gemacht werden kann.

Docker-Netzwerke entfernen

In Docker sind Netzwerke eine grund­le­gen­de Kom­po­nen­te, durch die Container mit­ein­an­der kom­mu­ni­zie­ren, un­ab­hän­gig davon, ob sie auf demselben Host oder über mehrere Hosts verteilt sind. Docker-Netzwerke bleiben bestehen, auch nachdem Container beendet oder entfernt wurden. Dies kann im Laufe der Zeit zu einer An­samm­lung von Netz­wer­ken führen, die nicht mehr verwendet werden und unnötig Res­sour­cen belegen. Der Befehl docker prune network ist eine einfache Mög­lich­keit, diese nicht mehr ver­wen­de­ten Netzwerke zu iden­ti­fi­zie­ren und zu entfernen.

Der Befehl hat folgende Form:

docker network prune [OPTIONS]
bash

Docker generiert hierbei eine Liste aller Netzwerke, die nicht mehr von aktiven Con­tai­nern verwendet werden be­zie­hungs­wei­se nicht mehr re­fe­ren­ziert sind. An­schlie­ßend wird um Be­stä­ti­gung gebeten, bevor die Netzwerke tat­säch­lich entfernt werden.

Docker prune: Best Practices

  • Au­to­ma­ti­sier­te Be­rei­ni­gung: Setzen Sie au­to­ma­ti­sier­te Skripte oder Tools ein, um nicht mehr benötigte Docker-Images, Container und Volumes re­gel­mä­ßig zu be­rei­ni­gen. Dadurch bleibt die Umgebung sauber und die Leistung wird optimiert.
  • Si­cher­heits­patches und Updates: Stellen Sie sicher, dass Docker-Engines, Host-Be­triebs­sys­te­me und alle Docker-Images re­gel­mä­ßig auf Si­cher­heits­up­dates überprüft und ak­tua­li­siert werden, damit po­ten­zi­el­le Si­cher­heits­lü­cken minimiert werden.
  • Über­wa­chung und Pro­to­kol­lie­rung: Nutzen Sie Über­wa­chungs- und Pro­to­kol­lie­rungs­werk­zeu­ge, um die Leistung von Con­tai­nern zu über­wa­chen, un­er­war­te­te Er­eig­nis­se zu erkennen und Pro­ak­ti­vi­tät bei der Wartung zu fördern.
  • Externes Backup: Im­ple­men­tie­ren Sie Routinen für externe Backups wichtiger Daten aus Docker-Con­tai­nern heraus. Dies könnte durch re­gel­mä­ßi­ges Sichern von Da­ten­bank­in­hal­ten oder Kon­fi­gu­ra­ti­ons­da­tei­en erfolgen.
  • Manuelle Über­prü­fung vor der Ent­fer­nung: Über­prü­fen Sie sorg­fäl­tig, ob Sie bestimmte Res­sour­cen nicht mehr benötigen, bevor Sie diese entfernen. So mi­ni­mie­ren Sie das Risiko ver­se­hent­li­cher Da­ten­ver­lus­te oder Un­ter­bre­chun­gen laufender Prozesse.
Tipp

Wenn Sie gerade erst in Docker ein­stei­gen, empfehlen wir Ihnen unser um­fang­rei­ches Docker Tutorial.

Compute Engine
Die ideale IaaS für Ihre Workloads
  • Kos­ten­güns­ti­ge vCPUs und leis­tungs­star­ke de­di­zier­te Cores
  • Höchste Fle­xi­bi­li­tät ohne Min­dest­ver­trags­lauf­zeit
  • Inklusive 24/7 Experten-Support
Zum Hauptmenü