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!