Verwenden von Docker Compose Down mit erweiterten Optionen
Der grundlegende Befehl docker-compose down
ist nützlich, aber Docker Compose bietet zusätzliche Optionen, um Ihnen mehr Kontrolle darüber zu geben, welche Ressourcen entfernt werden. In diesem Schritt werden wir diese Optionen untersuchen.
Entfernen von Volumes
Wie wir im vorherigen Schritt beobachtet haben, entfernt docker-compose down
standardmäßig keine Volumes. Dies ist eine Sicherheitsfunktion, um versehentlichen Datenverlust zu verhindern. Es gibt jedoch Zeiten, in denen Sie auch Volumes entfernen möchten, z. B. wenn Sie eine vollständige Bereinigung durchführen oder die Daten Ihrer Anwendung zurücksetzen möchten.
Um Volumes zusammen mit Containern und Netzwerken zu entfernen, verwenden Sie das Flag --volumes
:
docker-compose down --volumes
Probieren wir es aus:
cd ~/project/docker-compose-demo
docker-compose down --volumes
Sie sollten eine ähnliche Ausgabe wie diese sehen:
Stopping docker-compose-demo_web_1 ... done
Stopping docker-compose-demo_db_1 ... done
Removing docker-compose-demo_web_1 ... done
Removing docker-compose-demo_db_1 ... done
Removing network docker-compose-demo_default
Removing volume docker-compose-demo_web_data
Removing volume docker-compose-demo_db_data
Beachten Sie, dass dieses Mal auch die Volumes entfernt werden.
Überprüfen wir, ob die Volumes entfernt wurden:
docker volume ls | grep docker-compose-demo
Sie sollten keine Ausgabe sehen, was bestätigt, dass die Volumes entfernt wurden.
Entfernen von Images
Eine weitere nützliche Option ist das Entfernen von Images, wenn Sie Ihre Docker Compose-Umgebung herunterfahren. Dies kann mit dem Flag --rmi
erfolgen, das verschiedene Werte akzeptiert:
--rmi all
: Entfernt alle von einem Dienst verwendeten Images
--rmi local
: Entfernt nur Images, die kein benutzerdefiniertes Tag haben
Starten wir unsere Dienste erneut und verwenden dann das Flag --rmi
:
docker-compose up -d
Warten Sie, bis die Dienste gestartet sind, und fahren Sie sie dann mit dem Flag --rmi
herunter:
docker-compose down --rmi local
Sie sollten eine ähnliche Ausgabe wie diese sehen:
Stopping docker-compose-demo_web_1 ... done
Stopping docker-compose-demo_db_1 ... done
Removing docker-compose-demo_web_1 ... done
Removing docker-compose-demo_db_1 ... done
Removing network docker-compose-demo_default
Removing image redis:latest
Removing image nginx:latest
Dieses Mal werden auch die Images entfernt.
Entfernen von Orphan Containern
Manchmal haben Sie möglicherweise Container, die von Docker Compose erstellt wurden, aber nicht mehr in Ihrer aktuellen docker-compose.yml
-Datei definiert sind. Diese werden als "Orphan Container" bezeichnet.
Um dies zu demonstrieren, ändern wir unsere Docker Compose-Datei, um den db
-Dienst zu entfernen:
nano docker-compose.yml
Bearbeiten Sie die Datei, um den db
-Dienst und sein Volume zu entfernen:
version: "3"
services:
web:
image: nginx:latest
ports:
- "8080:80"
volumes:
- web_data:/usr/share/nginx/html
volumes:
web_data:
Speichern und beenden Sie den Editor (Ctrl+O, Enter, Ctrl+X).
Starten wir nun unsere Dienste erneut mit der aktualisierten Datei:
docker-compose up -d
Wenn wir einen vorherigen Container für den db
-Dienst hatten, der nicht ordnungsgemäß gestoppt wurde, würde er jetzt als Orphan betrachtet werden. Wir können solche Orphans mit dem Flag --remove-orphans
entfernen:
docker-compose down --remove-orphans
Dies stellt sicher, dass alle Container, die von einer früheren Version Ihrer Docker Compose-Datei erstellt wurden, aber nicht mehr definiert sind, ebenfalls entfernt werden.
Kombinieren von Optionen
Sie können diese Optionen auch für eine vollständige Bereinigung kombinieren:
docker-compose down --volumes --rmi all --remove-orphans
Dieser Befehl wird Folgendes tun:
- Alle Container stoppen und entfernen
- Alle benannten Volumes entfernen
- Alle von einem Dienst verwendeten Images entfernen
- Alle Orphan Container entfernen
Dies ist besonders nützlich, wenn Sie Ihre Umgebung vollständig zurücksetzen oder erhebliche Änderungen an Ihrer Docker Compose-Konfiguration vornehmen möchten.
Erkunden zusätzlicher Optionen
Sie können alle verfügbaren Optionen für den Befehl docker-compose down
mit dem Help-Flag anzeigen:
docker-compose down --help
Nehmen Sie sich einen Moment Zeit, um die verfügbaren Optionen und ihre Beschreibungen zu überprüfen.
Nun haben Sie ein gutes Verständnis dafür, wie Sie docker-compose down
mit verschiedenen Optionen verwenden können, um zu steuern, welche Ressourcen beim Herunterfahren Ihrer Docker Compose-Umgebung entfernt werden.