docker ps -a --filter commando is zeer nuttig om een lijst van Docker-containers te filteren op basis van specifieke voorwaarden. Het is een krachtige functie om snel de gewenste container te vinden in omgevingen met veel containers.

Hieronder zal ik de belangrijkste filteropties uitleggen met praktische voorbeelden.


Basisformaat



docker ps -a --filter <filternaam>=<filterwaarde>

Je kunt meerdere filters tegelijkertijd gebruiken door meerdere --filter opties toe te voegen.


🔍 Belangrijkste filteropties en toepassingen

1. Filteren op status

Wordt gebruikt om te filteren op de status van de container.

Statusoptie Beschrijving
created Container is aangemaakt maar nog niet gestart
restarting Container wordt continu herstart
running Container is momenteel aan het draaien
paused Container is gepauzeerd
exited Container is afgesloten

Voorbeeld: alleen actieve containers bekijken

docker ps -a --filter status=running

Voorbeeld: alleen afgesloten containers bekijken

docker ps -a --filter status=exited

2. Filteren op containernaam

Wordt gebruikt om containers te vinden die een bepaalde naam bevatten.

Voorbeeld: alleen containers met de naam "web" bekijken

docker ps -a --filter name=web
  • Voorbeeldresultaat:
CONTAINER ID   IMAGE           COMMAND     CREATED         STATUS         NAMES 
f1c2d3e4f5     nginx:latest    "/start"    2 dagen geleden   Up 2 dagen      my-web-container

3. Filteren op gebruikte afbeelding

Wordt gebruikt om containers te vinden die een specifieke afbeelding gebruiken.

Voorbeeld: containers die de nginx afbeelding gebruiken bekijken

docker ps -a --filter ancestor=nginx
  • Voorbeeldresultaat:
CONTAINER ID   IMAGE          COMMAND          STATUS        NAMES
a1b2c3d4e5     nginx:latest   "/start"         Up 3 uur      nginx-server-1
f6g7h8i9j0     nginx:alpine   "/start"         Afgesloten    nginx-temp

4. Filteren op volume

Handig om containers te vinden die een specifiek volume hebben aangekoppeld.

Voorbeeld: containers die het my_volume volume gebruiken bekijken

docker ps -a --filter volume=my_volume
  • Voorbeeldresultaat:
CONTAINER ID   IMAGE          COMMAND           STATUS         NAMES
1a2b3c4d5e     postgres       "docker-entry"    Up 2 dagen      postgres_db

5. Filteren op label

Nuttig voor het beheren van containers met labels via Docker Compose of Kubernetes.

Voorbeeld: containers met het label "env=production" bekijken

docker ps -a --filter label=env=production

  • Voorbeeldresultaat:
CONTAINER ID   IMAGE           COMMAND         STATUS          NAMES 
abcdef12345    myapp:latest    "/run-app"      Up 3 dagen       myapp-production

6. Filteren op netwerk

Handig om een lijst van containers te bekijken die zijn verbonden met een specifiek netwerk.

Voorbeeld: containers die zijn verbonden met een specifiek netwerk bekijken

docker ps -a --filter network=my_network

  • Voorbeeldresultaat:
CONTAINER ID   IMAGE          COMMAND          STATUS         NAMES 
123abc456de    redis          "/start"         Up 1 dag       redis-cache 
456def789gh    postgres       "/start"         Up 1 dag       postgres-db

7. Filteren op ID

Wordt gebruikt om snel een specifieke container-ID op te zoeken. (Meestal volstaat het om alleen het begin van de ID in te voeren.)

Voorbeeld: alleen containers bekijken waarvan de ID begint met 1234

docker ps -a --filter id=1234

💡 Meerdere filters combineren



Filters kunnen in combinatie worden gebruikt.

Voorbeeld: vind containers waarvan de naam "web" bevat, de status "running" heeft en de "nginx" afbeelding gebruikt

docker ps -a --filter name=web --filter status=running --filter ancestor=nginx

🛠️ Praktische toepassingen

  • Alle containers van een specifiek project stopzetten:
docker stop $(docker ps -a -q --filter name=my_project)
  • Oude afgesloten containers verwijderen:
docker rm $(docker ps -a -q --filter status=exited)
  • Onoverbodige tijdelijke containers opruimen:
docker rm $(docker ps -a -q --filter ancestor=temp_image)

Met het docker ps -a --filter commando kun je eenvoudig en snel filteren en beheren, vooral wanneer je veel containers hebt. Maak er actief gebruik van!