Introduction
Bienvenue dans le défi "Exécutez votre premier conteneur" ! Vous avez déjà appris à exécuter le conteneur hello-world. Passons maintenant à l'étape suivante en exécutant un conteneur différent. Dans ce défi, vous utiliserez vos compétences Docker pour démarrer l'image docker/getting-started, qui lance un petit serveur web à l'intérieur d'un conteneur.
Exécuter un nouveau conteneur
Tâches
Votre tâche est simple :
- Exécutez un conteneur Docker basé sur l'image
docker/getting-started.
Prérequis
Pour réussir ce défi, vous devez :
- Utiliser la commande
docker runpour démarrer le conteneur. - Utiliser l'image
docker/getting-started, qui a été pré-téléchargée pour vous. - Exécuter la commande dans le répertoire
~/project.
Exemple
Lorsque vous exécutez le conteneur avec succès, Docker le lance au premier plan (foreground), de sorte que votre terminal reste attaché aux journaux (logs) du conteneur. Ces journaux proviennent du serveur web Nginx situé à l'intérieur de docker/getting-started.
Ne vous inquiétez pas si vous voyez un message d'avertissement indiquant que le répertoire /docker-entrypoint.d/ n'est pas vide.
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2024/10/29 09:26:17 [notice] 1#1: using the "epoll" event method
2024/10/29 09:26:17 [notice] 1#1: nginx/1.23.3
2024/10/29 09:26:17 [notice] 1#1: built by gcc 12.2.1 20220924 (Alpine 12.2.1_git20220924-r4)
2024/10/29 09:26:17 [notice] 1#1: OS: Linux 5.15.0-56-generic
2024/10/29 09:26:17 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2024/10/29 09:26:17 [notice] 1#1: start worker processes
2024/10/29 09:26:17 [notice] 1#1: start worker process 31
2024/10/29 09:26:17 [notice] 1#1: start worker process 32
Vous pouvez ouvrir une nouvelle fenêtre de terminal pour vérifier que le conteneur est en cours d'exécution en utilisant la commande docker ps.
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f3f3b3b3b3b3 docker/getting-started "/docker-entrypoint.…" 1 minute ago Up 1 minute 80/tcp festive_mendel
Remarque : Laissez le premier terminal actif après avoir lancé
docker run docker/getting-started. Si vous appuyez surCtrl+Cou fermez ce terminal, le conteneur s'arrêtera. Ouvrez un second terminal pour exécuterdocker ps, ou utilisezdocker run -d docker/getting-startedsi vous souhaitez que le conteneur s'exécute en arrière-plan.
Résumé
Dans ce défi, vous avez approfondi vos compétences Docker en exécutant un nouveau conteneur. Vous avez utilisé la commande docker run pour démarrer l'image docker/getting-started, qui lance un serveur web à l'intérieur d'un conteneur et affiche ses journaux de démarrage dans le terminal. Vous avez également constaté qu'un conteneur lancé au premier plan maintient le terminal attaché jusqu'à ce que vous l'arrêtiez. Cet exercice renforce les bases du démarrage de conteneurs et de la vérification de leur état avec des commandes Docker telles que docker ps.



