Examiner les processus et l'utilisation des ressources du conteneur
Dans cette étape, vous apprendrez à inspecter les processus en cours d'exécution à l'intérieur d'un conteneur et à surveiller sa consommation de ressources. C'est une compétence fondamentale pour le débogage et la compréhension du comportement de votre application conteneurisée.
Une caractéristique clé des conteneurs est l'isolation des processus. Du point de vue de l'hôte, vous pouvez voir ce qui s'exécute à l'intérieur d'un conteneur sans avoir à y accéder via exec. La commande docker top vous permet de visualiser les processus principaux d'un conteneur.
Exécutez la commande suivante pour voir les processus à l'intérieur de votre conteneur webserver :
docker top webserver
La sortie montre le processus maître Nginx s'exécutant en tant que root et ses processus workers s'exécutant en tant que systemd+ (un utilisateur système pour une sécurité améliorée). Notez qu'il y a plusieurs processus workers, ce qui est typique pour Nginx afin de gérer efficacement les requêtes concurrentes.
UID PID PPID C STIME TTY TIME CMD
root 4098 4078 0 14:34 ? 00:00:00 nginx: master process nginx -g daemon off;
systemd+ 4161 4098 0 14:34 ? 00:00:00 nginx: worker process
systemd+ 4162 4098 0 14:34 ? 00:00:00 nginx: worker process
Ensuite, examinons l'utilisation des ressources du conteneur. La commande docker stats fournit un flux en direct du CPU, de la mémoire, du réseau et des entrées/sorties disque d'un conteneur. Pour obtenir un instantané statique pour ce laboratoire, nous utiliserons l'option --no-stream.
docker stats --no-stream webserver
Cette commande affichera un tableau avec les métriques de ressources actuelles pour le conteneur webserver.
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
bda2386621a1 webserver 0.00% 3.125MiB / 3.505GiB 0.09% 6.31kB / 1.27kB 0B / 12.3kB 3
À partir de cette sortie, vous pouvez constater que le conteneur utilise très peu de CPU (0,00 %), environ 3,1 MiB de mémoire sur les 3,5 GiB de mémoire système disponibles (0,09 %), et qu'il compte 3 processus en cours d'exécution (le maître Nginx et 2 processus workers). Ces informations sont essentielles pour identifier les goulots d'étranglement de performance ou les fuites de ressources potentielles dans vos applications.