Se connecter à un conteneur en cours d'exécution et observer sa sortie
Dans l'étape précédente, nous avons démarré un conteneur en mode détaché. Bien que le conteneur ait exécuté une commande simple et se soit probablement terminé rapidement, nous pouvons toujours nous y connecter pour voir sa sortie. La commande docker attach
permet de se connecter aux flux d'entrée standard, de sortie et d'erreur d'un conteneur en cours d'exécution ou terminé.
Commencez par récupérer l'ID du conteneur démarré précédemment. Utilisez la commande docker ps -a
et recherchez le conteneur exécutant la commande echo
. Copiez l'ID du conteneur.
docker ps -a
Maintenant, utilisez la commande docker attach
suivie de l'ID du conteneur pour vous y connecter.
docker attach <container_id>
Remplacez <container_id>
par l'ID réel de votre conteneur. Comme le conteneur a exécuté une simple commande echo
et s'est terminé, vous ne verrez peut-être aucune sortie immédiatement, ou vous pourriez voir le message "Hello from detached container!" si la sortie est encore en mémoire tampon. La commande attach
vous connectera aux flux du conteneur. Comme le conteneur a déjà terminé sa tâche, la commande attach
se terminera probablement juste après la connexion.
Pour démontrer la connexion à un conteneur qui reste actif, démarrons un nouveau conteneur en mode détaché exécutant une commande qui le maintient en vie pendant quelques secondes. Nous utiliserons à nouveau l'image ubuntu
avec la commande sleep 10
.
docker run -d ubuntu sleep 10
Récupérez l'ID de ce nouveau conteneur avec docker ps
. Cette fois, le conteneur devrait être dans l'état Up
.
docker ps
Maintenant, connectez-vous à ce conteneur en cours d'exécution en utilisant son ID.
docker attach <new_container_id>
Remplacez <new_container_id>
par l'ID du conteneur exécutant sleep 10
. Vous serez connecté aux flux standards du conteneur. Comme la commande sleep
ne produit aucune sortie, vous ne verrez rien. Le terminal semblera en attente. Le conteneur s'exécutera pendant 10 secondes avant de se terminer. Lorsque le conteneur se terminera, la commande attach
se terminera également, vous ramenant à l'invite de commande.