2.3 KiB
\newpage
Intervenir durant l'exécution
Lorsque nous lançons un conteneur, il arrive que son comportement nous échappe : une imprécision dans la documentation, un cas particulier, une erreur de configuration, ... Lorsque le conteneur est en cours d'exécution, il y a plusieurs manières de contrôler ce qu'il se passe.
docker logs
La première étape consiste bien souvent à regarder ce que le conteneur affiche sur ses sorties standard et d'erreur. Lorsqu'il est lancé en monde daemon, il convient d'utiliser la commande :
Cela affichera l'intégralité des journaux depuis la création du conteneur.
En ajoutant l'option --follow
lorsque le conteneur est actif, cela laissera
la commande active logs
pour afficher en direct les nouvelles lignes
inscrites sur les sorties du conteneur.
Entrer dans un conteneur en cours d'exécution
Dans certaines circonstances, les journaux ne sont pas suffisants pour déboguer correctement l'exécution d'un conteneur.
En réalisant les exercices, vous serez sans doute confronté à des comportements étranges, que vous ne pourriez comprendre qu'en ayant la main sur le conteneur, à travers un shell.
Lorsqu'un conteneur est actif, vous pouvez y lancer un nouveau processus, notamment un shell par exemple :
On peut aussi imaginer lancer régulièrement une commande par ce biais : pour déclencher une sauvegarde d'un conteneur serveur de base de données ou pour exécuter une tâche périodique.
::::: {.question}
Il n'est pas possible d'exec
dans un conteneur éteint. Aussi, si la commande
initiale du conteneur se termine, tous les exec
seront instantanément tués.
:::::
docker top
Si plusieurs processus doivent s'exécuter dans un conteneur, un bon moyen de savoir s'ils sont tous actifs est d'utiliser :
Cela liste tous les processus rattaché au conteneur nommé : à la fois les
processus démarrés par le run
, mais également les éventuels processus
rattachés par exec
.