Aller au contenu

Docker stats

De Marmits Wiki
Version datée du 31 mai 2025 à 23:18 par Geo (discussion | contributions) (Page créée avec « <span id="explication-de-docker-stats"></span> === '''Explication de <code>docker stats</code>''' === La commande <code>docker stats</code> 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 :<br /> - '''Diagnostiquer''' des problèmes de performance.<br /> - '''Vérifier''' l’impact des limites (<code>--memory</code>, <code>--cpus</code>, etc.).<br /> -... »)
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)

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 ! 🚀