Docker stats
Explication de docker stats
La commande docker stats permet de surveiller en temps réel les ressources système utilisées par vos conteneurs Docker (CPU, RAM, réseau, disque, etc.). Elle est utile pour :
- Diagnostiquer des problèmes de performance.
- Vérifier l’impact des limites (--memory, --cpus, etc.).
- Optimiser l’allocation des ressources.
Utilisation de base
1. Afficher les stats de tous les conteneurs
docker stats
Exemple de sortie :
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS a1b2c3d4e5f6 my-container 0.50% 150MiB / 1GiB 15.0% 1.2MB / 0.8MB 0B / 0B 5
2. Surveiller des conteneurs spécifiques
docker stats NOM_CONTENEUR1 NOM_CONTENEUR2
Exemple :
docker stats nginx mysql
Colonnes affichées
| Colonne | Description |
|---|---|
| CONTAINER ID | Identifiant court du conteneur. |
| NAME | Nom du conteneur. |
| CPU % | Pourcentage d’utilisation du CPU (par rapport aux cœurs disponibles). |
| MEM USAGE / LIMIT | Mémoire utilisée / Mémoire maximale allouée (ex: 250MiB / 1GiB).
|
| MEM % | Pourcentage de mémoire utilisée. |
| NET I/O | Données réseau entrantes/sortantes (ex: 1.2MB / 0.8MB).
|
| BLOCK I/O | Accès disque en lecture/écriture (ex: 10MB / 0B).
|
| PIDS | Nombre de processus en cours dans le conteneur. |
Options utiles
| Option | Description |
|---|---|
--no-stream
|
Affiche les stats une seule fois (au lieu de les rafraîchir en continu). |
--format
|
Personnalise le format de sortie (ex: --format "Modèle:.Name: Modèle:.MemUsage").
|
--all (-a)
|
Affiche tous les conteneurs (même ceux arrêtés). |
Exemples avancés
1. Afficher uniquement la mémoire et le CPU
docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"
Sortie :
NAME CPU % MEM USAGE / LIMIT my-container 0.50% 150MiB / 1GiB
2. Sauvegarder les stats dans un fichier
docker stats --no-stream > stats.txt
Cas d’usage courants
1. Identifier un conteneur gourmand
Si un conteneur utilise 100% CPU ou 90% MEM, vous pouvez :
- Limiter ses ressources (docker update --cpus 0.5).
- Le redémarrer (docker restart).
2. Vérifier l’efficacité des limites
Après avoir configuré --memory=1g, vérifiez avec :
docker stats
→ Si MEM USAGE / LIMIT dépasse souvent la limite, ajustez-la.
3. Comparer l’impact avant/après un déploiement
Lancez docker stats avant et après une mise à jour pour voir les changements de consommation.
Limitations
- Pas de historique : Les stats sont en direct (pour un suivi dans le temps, utilisez Prometheus ou cAdvisor).
- Précision : Les données sont approximatives (basées sur les cgroups Linux).
Alternative : docker stats avec Docker Compose
Si vous utilisez docker-compose, vous pouvez surveiller tous les services d’un projet avec :
docker-compose stats
Résumé
docker stats= Moniteur temps réel des conteneurs.
- Colonnes clés : CPU %, MEM USAGE, NET I/O.
- Options utiles :
--no-stream,--format,--all.
- Idéal pour debugger et optimiser les ressources.
Utilisez cette commande pour garder un œil sur vos conteneurs et éviter les surprises ! 🚀