Introduction
Dans ce défi, nous allons jouer avec les images Docker. Une image de conteneur Docker est un package logiciel léger, autonome et exécutable qui contient tout ce qui est nécessaire pour exécuter une application : le code, le runtime, les outils système, les bibliothèques système et les paramètres.
Changer d'image Docker
Une image Docker contient un nom d'image et une étiquette d'image, où le nom d'image comprend l'adresse du référentiel et l'identifiant de l'image. Dans cette sous-section, nous allons pousser une image Docker créée par autrui dans notre référentiel.
Objectif
Votre objectif est de pousser les images publiques ubuntu sur dockerhub vers votre référentiel privé.
Exemple de résultat
Voici un exemple de ce que vous devriez être capable d'accomplir à la fin de ce défi :
- Inscrivez-vous sur
dockerhubet connectez-vous.

- Téléchargez l'image
ubuntu:22.10depuis le docker hub sur notre serveur local.

- Changez l'image
ubuntu:22.10pour notre adresse de référentiel.

- Connectez-vous au docker hub.

- Poussez l'image vers le référentiel distant.

Conditions préalables
Pour terminer ce défi, vous devrez :
- Installer le moteur Docker.
- Avoir une certaine connaissance de la ligne de commande Docker.
- Une image Docker doit déjà exister et nécessite d'être mise à jour.
Construire une image web
Nous utilisons généralement nginx pour exécuter des applications statiques telles que des sites web. Dans cette section, nous allons construire notre image web.
Objectif
Votre objectif est de créer une image de conteneur Docker et d'emballer une application web simple à l'intérieur, puis d'utiliser cette image pour démarrer le conteneur et le rendre correctement accessible.
Exemple de résultat
Voici un exemple de ce que vous devriez être capable d'accomplir à la fin de ce défi :
- Créez un nouveau fichier appelé
index.htmldans le répertoire/home/labex/Codeavec le contenuhello labex.

- Créez un nouveau fichier appelé
Dockerfileavec le contenu suivant

- Construit votre image web au format
your_dockerhub_id/web:1.1.0.

- Poussez l'image web créée sur
dockerhub.

- Démarrez un conteneur appelé
webavecyour_dockerhub_id/web:1.1.0, et nous devons également mapper le port80sur l'hôte.

- Utilisez la commande
curlpour accéder àhttp://127.0.0.1et vérifiez que la sortie esthello labex.

Conditions préalables
Pour terminer ce défi, vous devrez :
- Construire avec un
Dockerfile - Spécifier l'image de base comme
Nginx:latest - Exposer le port
80dans leDockerfileà l'aide de la commande EXPOSE - Après la construction, assurez-vous que le conteneur peut fonctionner correctement et répondre aux requêtes HTTP
Construction d'image multi-étapes
La création d'une image de conteneur implique souvent deux étapes :
- Compiler la construction de l'application.
- Créer l'image de l'application.
Dans cette section, nous allons combiner ces deux étapes en un seul fichier Docker pour réaliser une construction multi-étapes.
Pour terminer cette section de défi, nous avons préparé un projet Hello World à l'adresse https://github.com/joker-bai/go-hello-world.git.
Objectif
Votre objectif est d'utiliser une construction multi-étapes pour créer une image de conteneur et d'utiliser cette image pour démarrer un conteneur et le rendre correctement accessible.
Exemple de résultat
Voici un exemple de ce que vous devriez être capable d'accomplir à la fin de ce défi :
Créez un répertoire
hello-worlddans le répertoire/home/labex/Code.
Créez un fichier
Dockerfiledans ce répertoire avec le contenu suivant
Construit l'image Docker au format
your_dockerhub_id/go-hello-world:1.1.0.
Poussez l'image sur le docker hub.

Démarrez un conteneur appelé
go-hello-worldet exposez le port8080.
Accédez à
http://127.0.0.1:8080pour vérifier si tout est correct.
Conditions préalables
Pour terminer ce défi, vous devrez :
- Construire avec un
Dockerfile - Après la construction, assurez-vous que le conteneur peut fonctionner correctement et répondre aux requêtes HTTP
Résumé
Félicitations pour la réussite de tous les éléments de ce défi. Vous disposez désormais de la flexibilité de créer et de gérer des images d'application.



