docker ps -a --filter est une commande très utile pour filtrer la liste des conteneurs Docker selon certaines conditions. C'est une fonctionnalité puissante qui permet de trouver rapidement le conteneur souhaité dans un environnement avec de nombreux conteneurs.
Ci-dessous, j'expliquerai les principales options de filtrage avec des exemples pratiques.
Format de base
docker ps -a --filter <nom_du_filtre>=<valeur_du_filtre>
Il est possible d'utiliser plusieurs filtres simultanément en utilisant plusieurs options --filter.
🔍 Principales options de filtrage et exemples pratiques
1. Filtrer par l'état (status)
Utilisé pour filtrer par l'état d'un conteneur.
| Option d'état | Description |
|---|---|
| created | Conteneur créé mais pas encore démarré |
| restarting | Conteneur en cours de redémarrage |
| running | Conteneur en cours d'exécution |
| paused | Conteneur en pause |
| exited | Conteneur arrêté |
Exemple : afficher uniquement les conteneurs en cours d'exécution
docker ps -a --filter status=running
Exemple : afficher uniquement les conteneurs arrêtés
docker ps -a --filter status=exited
2. Filtrer par nom (name)
Utilisé pour trouver les conteneurs contenant un nom spécifique.
Exemple : afficher uniquement les conteneurs dont le nom contient "web"
docker ps -a --filter name=web
- Exemple de résultat :
CONTAINER ID IMAGE COMMAND CREATED STATUS NAMES
f1c2d3e4f5 nginx:latest "/start" 2 days ago Up 2 days my-web-container
3. Filtrer par image utilisée (image)
Utilisé pour trouver facilement les conteneurs utilisant une image spécifique.
Exemple : afficher les conteneurs utilisant l'image nginx
docker ps -a --filter ancestor=nginx
- Exemple de résultat :
CONTAINER ID IMAGE COMMAND STATUS NAMES
a1b2c3d4e5 nginx:latest "/start" Up 3 hours nginx-server-1
f6g7h8i9j0 nginx:alpine "/start" Exited nginx-temp
4. Filtrer par volume (volume)
Utile pour trouver les conteneurs montés avec un volume spécifique.
Exemple : afficher les conteneurs utilisant le volume my_volume
docker ps -a --filter volume=my_volume
- Exemple de résultat :
CONTAINER ID IMAGE COMMAND STATUS NAMES
1a2b3c4d5e postgres "docker-entry" Up 2 days postgres_db
5. Filtrer par étiquette (label)
Utile pour gérer les conteneurs avec des étiquettes via Docker Compose ou Kubernetes.
Exemple : afficher les conteneurs avec l'étiquette "env=production"
docker ps -a --filter label=env=production
- Exemple de résultat :
CONTAINER ID IMAGE COMMAND STATUS NAMES
abcdef12345 myapp:latest "/run-app" Up 3 days myapp-production
6. Filtrer par réseau (network)
Utile pour vérifier la liste des conteneurs connectés à un réseau spécifique.
Exemple : afficher les conteneurs connectés à un réseau spécifique
docker ps -a --filter network=my_network
- Exemple de résultat :
CONTAINER ID IMAGE COMMAND STATUS NAMES
123abc456de redis "/start" Up 1 day redis-cache
456def789gh postgres "/start" Up 1 day postgres-db
7. Filtrer par ID
Utilisé pour rechercher rapidement un ID de conteneur spécifique. (Généralement, il suffit de saisir le début de l'ID.)
Exemple : afficher les conteneurs dont l'ID commence par 1234
docker ps -a --filter id=1234
💡 Utiliser plusieurs combinaisons de filtres
Les filtres peuvent être combinés.
Exemple : trouver les conteneurs qui contiennent "web" dans le nom, qui sont "running" et qui utilisent l'image "nginx"
docker ps -a --filter name=web --filter status=running --filter ancestor=nginx
🛠️ Exemples d'utilisation pratiques
- Arrêter tous les conteneurs d'un projet spécifique :
docker stop $(docker ps -a -q --filter name=my_project)****
- Supprimer les conteneurs arrêtés anciens :
docker rm $(docker ps -a -q --filter status=exited)
- Nettoyer les conteneurs temporaires inutiles :
docker rm $(docker ps -a -q --filter ancestor=temp_image)
Ainsi, la commande docker ps -a --filter est très pratique et puissante pour filtrer et gérer rapidement selon des critères spécifiques lorsque le nombre de conteneurs augmente. Utilisez-la activement !
Aucun commentaire.