Introduction
Dans ce labo (LabEx), vous apprendrez à gérer l'état des conteneurs Docker, en vous concentrant particulièrement sur leur mise en pause et leur réactivation. Vous commencerez par créer et exécuter un conteneur simple.
Après la création, vous pratiquerez la mise en pause du conteneur en cours d'exécution et vérifierez son état suspendu. Enfin, vous apprendrez comment réactiver le conteneur et confirmer qu'il a repris son exécution. Cette expérience pratique vous permettra de comprendre concrètement l'utilisation de la commande docker container unpause.
Créer et exécuter un conteneur
Dans cette étape, vous apprendrez à créer et exécuter un conteneur Docker. Un conteneur est une unité logicielle standard qui empaquette du code et toutes ses dépendances afin que l'application s'exécute rapidement et de manière fiable d'un environnement informatique à un autre.
Commencez par télécharger une image simple depuis Docker Hub. Nous utiliserons l'image hello-world, une image très légère utilisée pour tester les installations Docker.
docker pull hello-world
Vous devriez voir une sortie indiquant que l'image est en cours de téléchargement et d'extraction.
Using default tag: latest
latest: Pulling from library/hello-world
...
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest
Maintenant que nous avons l'image, nous pouvons exécuter un conteneur basé sur celle-ci. Lorsque vous exécutez un conteneur à partir de l'image hello-world, Docker affiche simplement un message dans votre terminal puis se termine.
docker run hello-world
Vous devriez voir une sortie similaire à ceci, confirmant que votre installation Docker fonctionne correctement :
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(If you already had the image locally, skipped the pull step.)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Cette commande a créé et exécuté un conteneur à partir de l'image hello-world. Comme le rôle du conteneur était simplement d'afficher un message et de se terminer, il n'est plus en cours d'exécution.
Mettre en pause le conteneur en cours d'exécution
Dans l'étape précédente, nous avons exécuté un conteneur simple qui s'est immédiatement terminé. Pour démontrer les fonctionnalités de mise en pause et de reprise, nous avons besoin d'un conteneur qui reste actif. Nous utiliserons un conteneur ubuntu simple et le maintiendrons en fonctionnement en arrière-plan.
Commencez par télécharger l'image ubuntu.
docker pull ubuntu
Vous devriez voir une sortie indiquant que l'image est en cours de téléchargement et d'extraction.
Using default tag: latest
latest: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
Maintenant, exécutons un conteneur ubuntu en mode détaché (-d) pour qu'il fonctionne en arrière-plan. Nous lui attribuerons également un nom (my-ubuntu) pour faciliter sa référence. Nous utiliserons la commande tail -f /dev/null pour maintenir le conteneur actif indéfiniment.
docker run -d --name my-ubuntu ubuntu tail -f /dev/null
Cette commande affichera l'ID du conteneur.
<container_id>
Vous pouvez vérifier que le conteneur est en cours d'exécution avec la commande docker ps.
docker ps
Vous devriez voir une sortie similaire à celle-ci, montrant votre conteneur my-ubuntu avec un statut Up.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "tail -f /dev/null" X seconds ago Up X seconds my-ubuntu
Maintenant que nous avons un conteneur actif, nous pouvons le mettre en pause en utilisant la commande docker pause suivie du nom ou de l'ID du conteneur.
docker pause my-ubuntu
Si la commande réussit, il n'y aura aucune sortie. Le conteneur est maintenant en pause.
Vérifier que le conteneur est en pause
À l'étape précédente, nous avons mis en pause le conteneur my-ubuntu. Vérifions maintenant que le conteneur est bien dans un état de pause.
Nous pouvons à nouveau utiliser la commande docker ps pour vérifier l'état des conteneurs en cours d'exécution.
docker ps
Cette commande n'affiche que les conteneurs actuellement en cours d'exécution. Comme nous avons mis en pause le conteneur my-ubuntu, il ne devrait pas apparaître dans la sortie de docker ps.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Pour voir tous les conteneurs, y compris ceux qui sont arrêtés, terminés ou en pause, nous pouvons utiliser l'option -a avec docker ps.
docker ps -a
Vous devriez maintenant voir le conteneur my-ubuntu listé, avec son statut indiquant qu'il est en pause. Recherchez le mot Paused dans la colonne STATUS.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "tail -f /dev/null" X minutes ago Up X minutes (Paused) my-ubuntu
Le statut (Paused) confirme que le conteneur n'est pas activement en cours d'exécution mais reste en mémoire, prêt à être relancé.
Reprendre le conteneur
Dans l'étape précédente, nous avons vérifié que le conteneur my-ubuntu était en pause. Maintenant, reprenons son exécution.
Pour relancer un conteneur en pause, nous utilisons la commande docker unpause suivie du nom ou de l'ID du conteneur.
docker unpause my-ubuntu
Si la commande réussit, il n'y aura aucune sortie. Le conteneur devrait maintenant être de nouveau en cours d'exécution à partir de l'état où il avait été mis en pause.
Vérifier que le conteneur est à nouveau en cours d'exécution
Dans l'étape précédente, nous avons repris le conteneur my-ubuntu. Vérifions maintenant qu'il est bien actif à nouveau.
Nous pouvons utiliser la commande docker ps pour lister les conteneurs actuellement en cours d'exécution.
docker ps
Cette fois, le conteneur my-ubuntu devrait apparaître dans la sortie, avec le statut Up.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "tail -f /dev/null" X minutes ago Up X seconds my-ubuntu
Le statut Up indique que le conteneur est en cours d'exécution et que ses processus sont actifs.
Pour confirmer davantage, nous pouvons également utiliser docker ps -a et vérifier le statut. Il devrait afficher Up sans l'indicateur (Paused).
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "tail -f /dev/null" X minutes ago Up X seconds my-ubuntu
Ceci confirme que le conteneur a bien repris son exécution depuis son état de pause.
Enfin, nettoyons le conteneur que nous avons créé. Nous devons d'abord l'arrêter, puis le supprimer.
docker stop my-ubuntu
Cette commande arrêtera le conteneur. Vous devriez voir le nom ou l'ID du conteneur s'afficher.
my-ubuntu
Maintenant, supprimez le conteneur avec la commande docker rm.
docker rm my-ubuntu
Cette commande supprimera le conteneur. Vous devriez voir le nom ou l'ID du conteneur s'afficher.
my-ubuntu
Résumé
Dans ce labo, vous avez appris à créer et exécuter un conteneur Docker en téléchargeant l'image hello-world et en la lançant. Cela a démontré le processus fondamental d'obtention d'une image et de démarrage d'un conteneur à partir de celle-ci. Vous avez ensuite appris à mettre en pause un conteneur en cours d'exécution, suspendant ainsi ses processus, et à vérifier son état de pause. Enfin, vous avez pratiqué la reprise du conteneur pour continuer son exécution et confirmé qu'il fonctionnait à nouveau.



