DOCKER - 12 Visualiser l'activités dans un conteneur

Plusieurs commandes Docker permettent d'inspecter ce qui se passe à l'intérieur d'un conteneur en cours d'exécution. Commençons par créer deux conteneurs pour la démonstration :

docker run -d --name web-server -p 8080:80 nginx
docker run -d --name database -e MYSQL_ROOT_PASSWORD=secret mysql

La première commande utile est docker top, qui affiche les processus en exécution dans un conteneur spécifique :

docker top database

Vous verrez une liste avec le processus MySQL daemon (mysqld) et ses détails. docker inspect fournit une vue détaillée de la configuration complète du conteneur au démarrage :

docker inspect database

Cela retourne un tableau JSON contenant toutes les métadonnées : variables d'environnement, mappage de ports, volumes, adresse IP virtuelle, etc. C'est utile pour diagnostiquer la configuration, mais ne montre pas l'activité en temps réel. Pour cela, utilisez docker stats :

docker stats

Cela affiche un tableau continu (temps réel) avec le CPU %, mémoire utilisée (en MB), entrée/sortie réseau et disque de tous les conteneurs. Vous verrez l'ID du conteneur ou son nom, et les statistiques se mettent à jour toutes les 1-2 secondes. Pour quitter, appuyez sur Ctrl+C.

Ensemble, ces trois commandes (docker top, docker inspect, docker stats) offrent une visibilité complète : les processus qui tournent, leur configuration initiale, et leur consommation de ressources actuelle. C'est essentiel pour diagnostiquer les problèmes de performance ou les comportements inattendus.

En résumé

Ce cours explore les trois commandes Docker essentielles pour surveiller et diagnostiquer l'activité des conteneurs en cours d'exécution. La leçon détaille `docker containers top` pour lister les processus, `docker containers inspect` pour examiner la configuration et les métadonnées au démarrage, et `docker containers stats` pour afficher les statistiques de performance en temps réel (CPU, mémoire). Ces outils permettent aux développeurs de vérifier qu'aucun conteneur n'utilise des ressources excessives et de comprendre ce qui se passe à l'intérieur de leurs conteneurs.

Points clés

  • La commande `docker containers top` répertorie les processus en cours d'exécution à l'intérieur d'un conteneur spécifique
  • `docker containers inspect` affiche les métadonnées détaillées, la configuration du conteneur à son démarrage et les variables d'environnement définies
  • `docker containers stats` fournit une vue en temps réel et continue des statistiques de performance de tous les conteneurs (CPU, mémoire)
  • Les statistiques de performance sont essentielles pour s'assurer que les conteneurs ne consomment pas trop de mémoire ou de bande passante
  • Il est possible de surveiller tous les conteneurs à la fois ou de cibler un conteneur spécifique en le nommant
  • Ces commandes permettent de diagnostiquer rapidement les problèmes de ressources sans analyser les données de démarrage du conteneur

Questions fréquentes

Quelle est la différence entre `docker containers top` et `docker containers inspect` ?

`docker containers top` affiche uniquement les processus actuellement en cours d'exécution dans le conteneur, tandis que `docker containers inspect` expose toutes les métadonnées du conteneur : sa configuration au démarrage, les variables d'environnement, les options utilisées et d'autres paramètres de configuration détaillés.

À quoi sert la commande `docker containers stats` et quand l'utiliser ?

`docker containers stats` affiche en continu les statistiques de performance en temps réel (CPU, mémoire) de tous les conteneurs ou d'un conteneur spécifique. Elle est utile pour surveiller localement que les conteneurs n'utilisent pas trop de ressources et ne remplissent pas le disque dur à cause d'un processus non surveillé.

Comment utiliser `docker containers stats` pour surveiller un seul conteneur ?

Il suffit de spécifier le nom ou l'ID du conteneur après la commande, par exemple `docker containers stats mysql`. Sans argument, la commande affiche les statistiques de tous les conteneurs en cours d'exécution.