Exercice : Envoyer une image de microservice à Docker Hub

Effectué

Pour que Kubernetes crée une image conteneur, il a besoin d’un emplacement à partir duquel l’obtenir. Docker Hub est un emplacement central pour charger les images Docker. De nombreux produits, y compris Kubernetes, peuvent créer des conteneurs basés sur des images dans Docker Hub.

Remarque

Vous allez effectuer cet exercice dans un codespace GitHub avec Docker et le Kit de développement logiciel (SDK) .NET préinstallé. Lorsque vous utilisez ces techniques dans votre propre environnement de développement, vérifiez que ces composants requis sont installés.

Ouvrez l’environnement de développement

Vous pouvez choisir d’utiliser un codespace GitHub qui héberge l’exercice ou effectuer l’exercice localement dans Visual Studio Code.

Pour utiliser un codespace, créez un codespace GitHub préconfiguré avec ce lien de création de codespace.

Le processus de création et de configuration du codespace par GitHub prend plusieurs minutes. Une fois terminé, le code utilisé pour le reste de ce module se trouve dans le répertoire /dotnet-kubernetes.

Pour utiliser Visual Studio Code, clonez le référentiel https://github.com/MicrosoftDocs/mslearn-dotnet-cloudnative sur votre ordinateur local. Ensuite :

  1. Installez les éléments système requis pour exécuter Dev Container dans Visual Studio Code.
  2. Vérifiez que Docker est en cours d’exécution.
  3. Dans une nouvelle fenêtre Visual Studio Code, ouvrez le dossier du dépôt cloné
  4. Appuyez sur Ctrl+Maj+P pour ouvrir la palette de commandes.
  5. Recherche : >Dev Containers : Regénérer et rouvrir dans un conteneur
  6. Sélectionnez eShopLite - dotnet-kubernetes dans la liste déroulante. Visual Studio Code crée votre conteneur de développement localement.

Vérifier les images Docker en créant des conteneurs dans le codespace

Il existe deux conteneurs dans le projet Contoso Shop. Avant d’envoyer (push) les images vers Docker Hub, nous allons les utiliser pour créer les conteneurs dans le codespace. Une fois les conteneurs créés et en cours d’exécution, nous pourrons parcourir le site web de la société Contoso et vérifier que les microservices s’exécutent correctement.

Suivez ces étapes pour créer et exécuter des conteneurs Docker dans le codespace.

  1. Basculez vers l’onglet TERMINAL et exécutez la commande suivante pour accéder à la racine du code :

    cd dotnet-kubernetes
    
  2. Exécutez la commande suivante pour générer les conteneurs :

    dotnet publish /p:PublishProfile=DefaultContainer
    

    La génération des conteneurs pourrait prendre un certain temps.

  3. Exécutez la commande suivante pour exécuter l’application et attacher les conteneurs :

    docker compose up
    
  4. Pour tester le service front-end, basculez vers l’onglet PORTS, puis à droite de l’adresse locale du port Front End, sélectionnez l’icône du globe. Le navigateur affiche la page d’accueil.

  5. Sélectionnez Produits. Le catalogue affiche la marchandise de Contoso.

  6. Fermez le site web, revenez à l’onglet TERMINAL, puis appuyez sur CTRL + C. Docker compose arrête les conteneurs.

Se connecter à Docker Hub

L’étape suivante du chargement des images vers Docker Hub consiste à se connecter à Docker Hub. Dans l’invite de commandes, entrez la commande suivante :

docker login

Important

Indiquez le nom d’utilisateur et le mot de passe que vous avez utilisés quand vous avez créé votre compte Docker. Vous pouvez visiter le site web Docker Hub pour réinitialiser votre mot de passe, le cas échéant.

Charger les images vers Docker Hub

  1. Entrez le code suivant pour réétiqueter, ou renommer, les images Docker que vous avez créées sous votre nom d’utilisateur Docker.

    docker tag store [YOUR DOCKER USER NAME]/storeimage
    docker tag products [YOUR DOCKER USER NAME]/productservice
    
  2. Pour finir, chargez ou envoyez (push) les images Docker vers Docker Hub.

    docker push [YOUR DOCKER USER NAME]/storeimage
    docker push [YOUR DOCKER USER NAME]/productservice
    

    Si vous recevez une erreur d’authentification, vous pouvez exécuter docker logout suivi de docker login pour effectuer une nouvelle authentification.

Dans cet exercice, vous avez utilisé Dockerfiles et Docker compose pour créer deux images et conteneurs Docker, et avez poussé ces images dans Docker Hub.

Vous êtes maintenant prêt à utiliser Kubernetes pour gérer le déploiement des microservices de Contoso.