docker ps -a --filter ist ein sehr nützliches Kommando, um Docker-Container-Listen nach bestimmten Kriterien zu filtern. Es ist eine leistungsfähige Funktion, um in Umgebungen mit vielen Containern schnell die gewünschten Container zu finden.
Im Folgenden werde ich die wichtigsten Filteroptionen mit praktischen Anwendungsbeispielen beschreiben.
Grundformat
docker ps -a --filter <Filtername>=<Filterwert>
Es können mehrere Filter gleichzeitig verwendet werden; in diesem Fall werden mehrere --filter Optionen verwendet.
🔍 Wichtige Filteroptionen und Anwendungsbeispiele
1. Filtern nach Status
Wird verwendet, um nach dem Status der Container zu filtern.
| Statusoption | Beschreibung |
|---|---|
| created | Container, die erstellt, aber noch nicht gestartet wurden |
| restarting | Container, die ständig neu starten |
| running | Aktuell laufende Container |
| paused | Gestoppte Container |
| exited | Beendete Container |
Beispiel: Nur laufende Container anzeigen
docker ps -a --filter status=running
Beispiel: Nur beendete Container anzeigen
docker ps -a --filter status=exited
2. Filtern nach Containername
Wird verwendet, um Container mit bestimmten Namen zu suchen.
Beispiel: Nur Container anzeigen, die "web" im Namen enthalten
docker ps -a --filter name=web
- Beispielausgabe:
CONTAINER ID IMAGE COMMAND CREATED STATUS NAMES
f1c2d3e4f5 nginx:latest "/start" 2 days ago Up 2 days my-web-container
3. Filtern nach verwendetem Bild
Wird verwendet, um Container, die ein bestimmtes Bild nutzen, schnell zu finden.
Beispiel: Container anzeigen, die das nginx-Bild verwenden
docker ps -a --filter ancestor=nginx
- Beispielausgabe:
CONTAINER ID IMAGE COMMAND STATUS NAMES
a1b2c3d4e5 nginx:latest "/start" Up 3 hours nginx-server-1
f6g7h8i9j0 nginx:alpine "/start" Exited nginx-temp
4. Filtern nach Volume
Es ist nützlich, um Container zu finden, die ein bestimmtes Volume gemountet haben.
Beispiel: Container anzeigen, die das my_volume-Volume nutzen
docker ps -a --filter volume=my_volume
- Beispielausgabe:
CONTAINER ID IMAGE COMMAND STATUS NAMES
1a2b3c4d5e postgres "docker-entry" Up 2 days postgres_db
5. Filtern nach Label
Nützlich zur Verwaltung von Containern mit Labels, z.B. in Docker Compose oder Kubernetes.
Beispiel: Container anzeigen, die das Label "env=production" haben
docker ps -a --filter label=env=production
- Beispielausgabe:
CONTAINER ID IMAGE COMMAND STATUS NAMES
abcdef12345 myapp:latest "/run-app" Up 3 days myapp-production
6. Filtern nach Netzwerk
Nützlich zum Überprüfen der Container-Listen, die mit bestimmten Netzwerken verbunden sind.
Beispiel: Container anzeigen, die mit einem bestimmten Netzwerk verbunden sind
docker ps -a --filter network=my_network
- Beispielausgabe:
CONTAINER ID IMAGE COMMAND STATUS NAMES
123abc456de redis "/start" Up 1 day redis-cache
456def789gh postgres "/start" Up 1 day postgres-db
7. Filtern nach ID
Wird verwendet, um schnell eine bestimmte Container-ID zu suchen. (Normalerweise reicht es, einen Teil der ID einzugeben.)
Beispiel: Container anzeigen, deren ID mit 1234 beginnt
docker ps -a --filter id=1234
💡 Verwendung mehrerer Filterkombinationen
Filter können miteinander kombiniert werden.
Beispiel: Container finden, die "web" im Namen enthalten, den Status "running" haben und das "nginx"-Bild verwenden
docker ps -a --filter name=web --filter status=running --filter ancestor=nginx
🛠️ Praktische Anwendungsbeispiele
- Wenn Sie alle Container eines bestimmten Projekts stoppen möchten:
docker stop $(docker ps -a -q --filter name=my_project)****
- Entfernen von alten beendeten Containern:
docker rm $(docker ps -a -q --filter status=exited)
- Aufräumen unnötiger temporärer Container:
docker rm $(docker ps -a -q --filter ancestor=temp_image)
Das docker ps -a --filter Kommando ist sehr praktisch und leistungsstark, um Container in größeren Mengen schnell nach bestimmten Kriterien zu filtern und zu verwalten. Nutze es aktiv!
Es sind keine Kommentare vorhanden.