Wie man docker rm verwendet
Jonas ScholzWenn du mit Docker arbeitest, wirst du früher oder später deine Container aufräumen müssen. Genau hier kommt der Befehl docker rm ins Spiel. Er ist eine einfache Möglichkeit, einen oder mehrere Container zu entfernen, die du nicht mehr brauchst.
Lass uns anschauen, wie man docker rm benutzt und ein paar Beispiele durchgehen.
Grundlegende Verwendung
Um einen Container zu entfernen, verwendest du diesen Befehl:
docker container rm [OPTIONEN] CONTAINER [CONTAINER...]
Oder du kannst die kürzere Version nutzen:
docker rm [OPTIONEN] CONTAINER [CONTAINER...]
Hier ist CONTAINER der Name oder die ID des Containers, den du entfernen möchtest. Du kannst auch mehrere Container angeben, wenn du mehr als einen auf einmal löschen willst.
Einen Container entfernen
Stell dir vor, du hast einen Container namens /redis, den du nicht mehr brauchst. Um ihn zu entfernen, führst du aus:
docker rm /redis
Dieser Befehl entfernt den /redis Container von deinem System.
Eine Verbindung entfernen
Wenn du eine Verbindung zwischen Containern mit der Option --link im Standard-Bridge-Netzwerk eingerichtet hast, kannst du diese Verbindung entfernen, ohne die Container zu löschen. Wenn du zum Beispiel einen /webapp Container hast, der mit einem /redis Container verbunden ist, kannst du die Verbindung so trennen:
docker rm --link /webapp/redis
Dieser Befehl unterbricht die Netzwerkkommunikation zwischen /webapp und /redis, aber beide Container bleiben erhalten.
Einen laufenden Container mit Gewalt entfernen
Manchmal musst du vielleicht einen Container entfernen, der noch läuft. Dafür kannst du die Option --force oder -f verwenden. Wenn du beispielsweise einen laufenden Container namens redis sofort entfernen willst, führst du aus:
docker rm -f redis
Dieser Befehl sendet ein SIGKILL-Signal an den Hauptprozess im Container, stoppt ihn sofort und entfernt dann den Container.
Alle gestoppten Container entfernen
Wenn du alle deine gestoppten Container aufräumen willst, kannst du den Befehl docker container prune verwenden:
docker container prune
Dieser Befehl entfernt alle gestoppten Container. Alternativ, wenn du nicht nur gestoppte Container, sondern auch andere ungenutzte Docker-Ressourcen wie Images und Netzwerke entfernen möchtest, kannst du verwenden:
docker system prune
Eine andere Möglichkeit, alle gestoppten Container zu entfernen, ist die Kombination von docker ps und docker rm. Du kannst die IDs aller gestoppten Container so auflisten:
docker ps -q --filter status=exited
Dann kannst du diese IDs an docker rm weiterleiten, um sie zu entfernen:
docker ps -q --filter status=exited | docker rm
Unter Linux kannst du auch das xargs-Tool verwenden, um dasselbe Ergebnis zu erzielen:
docker ps -q --filter status=exited | xargs docker rm
Einen Container und seine Volumes entfernen
Wenn du einen Container entfernst, werden standardmäßig die damit verbundenen Volumes nicht gelöscht. Wenn du den Container und seine Volumes entfernen möchtest, kannst du die Option --volumes oder -v verwenden. Zum Beispiel:
docker rm -v my_container
Dieser Befehl entfernt my_container und alle anonymen Volumes, die damit verbunden sind. Beachte, dass benannte Volumes mit diesem Befehl nicht entfernt werden.
Volumes selektiv entfernen
Wenn du einige Volumes behalten und andere entfernen möchtest, musst du sie separat entfernen. Wenn du zum Beispiel einen Container mit Volumes unter /foo und /bar hast und /foo behalten, aber /bar entfernen möchtest, würdest du zuerst den Container entfernen:
docker rm my_container
Dann würdest du das /bar Volume separat entfernen:
docker volume rm my_container_bar
Das gleiche Prinzip gilt, wenn du --volumes-from verwendet hast, um Volumes von einem anderen Container zu übernehmen.
Mit docker rm und seinen verschiedenen Optionen kannst du deine Docker-Umgebung effektiv verwalten und aufräumen.