Image Docker et Registre

DockerBeginner
Pratiquer maintenant

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 :

  1. Inscrivez-vous sur dockerhub et connectez-vous.
Écran d'inscription et de connexion à Dockerhub
  1. Téléchargez l'image ubuntu:22.10 depuis le docker hub sur notre serveur local.
Téléchargement de l'image Docker Ubuntu
  1. Changez l'image ubuntu:22.10 pour notre adresse de référentiel.
Modification de l'adresse du référentiel de l'image Docker
  1. Connectez-vous au docker hub.
Écran de connexion à Docker Hub
  1. Poussez l'image vers le référentiel distant.
Poussée de l'image vers le référentiel

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.
✨ Vérifier la solution et pratiquer

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 :

  1. Créez un nouveau fichier appelé index.html dans le répertoire /home/labex/Code avec le contenu hello labex.
Création du fichier index html
  1. Créez un nouveau fichier appelé Dockerfile avec le contenu suivant
Exemple de contenu du Dockerfile
  1. Construit votre image web au format your_dockerhub_id/web:1.1.0.
Construction de l'image web Docker
  1. Poussez l'image web créée sur dockerhub.
Poussée de l'image web sur DockerHub
  1. Démarrez un conteneur appelé web avec your_dockerhub_id/web:1.1.0, et nous devons également mapper le port 80 sur l'hôte.
Démarrage du conteneur Docker web
  1. Utilisez la commande curl pour accéder à http://127.0.0.1 et vérifiez que la sortie est hello labex.
Sortie de la commande curl hello 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 80 dans le Dockerfile à 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
✨ Vérifier la solution et pratiquer

Construction d'image multi-étapes

La création d'une image de conteneur implique souvent deux étapes :

  1. Compiler la construction de l'application.
  2. 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 :

  1. Créez un répertoire hello-world dans le répertoire /home/labex/Code.
    Création du répertoire hello world

  2. Créez un fichier Dockerfile dans ce répertoire avec le contenu suivant
    Exemple de création du Dockerfile

  3. Construit l'image Docker au format your_dockerhub_id/go-hello-world:1.1.0.
    Processus de construction de l'image Docker

  4. Poussez l'image sur le docker hub.
    Poussée de l'image Docker sur le hub

  5. Démarrez un conteneur appelé go-hello-world et exposez le port 8080.
    Démarrage du conteneur go hello world

  6. Accédez à http://127.0.0.1:8080 pour vérifier si tout est correct.
    Vérification de la réponse HTTP du conteneur

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
✨ Vérifier la solution et pratiquer

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.