Exercice : Déployer une image Docker sur une instance de conteneur Azure

Effectué

Azure Container Instances vous permet d’exécuter une image Docker dans Azure.

Dans l’exercice précédent, vous avez empaqueté et testé votre application web en tant qu’image Docker locale. À présent, vous souhaitez utiliser la sortie de cet exercice et rendre l’application web disponible dans le monde entier. Pour assurer cette disponibilité, vous pouvez exécuter l’image en tant qu’instance de conteneur Azure.

Dans cet exercice, vous allez apprendre à regénérer l’image pour l’application web et la charger sur Azure Container Registry. Vous allez utiliser le service Azure Container Instances pour exécuter l’image.

Important

Vous avez besoin de votre propre abonnement Azure pour exécuter cet exercice et des frais pourraient vous être facturés. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Créer un registre de conteneurs

  1. Connectez-vous au portail Azure avec votre abonnement Azure.

  2. Dans le menu de ressources ou dans la page Accueil, sélectionnez Créer une ressource. Le volet Créer une ressource apparaît.

  3. Dans le menu, sélectionnez Conteneurs, puis Registre de conteneurs.

    Capture d’écran montrant Créer une ressource avec Container Registry.

    Le volet Créer un Registre de conteneurs s’affiche.

  4. Sous l’onglet Informations de base, entrez les valeurs suivantes pour chaque paramètre.

    Paramètre Valeur
    Détails du projet
    Abonnement Sélectionnez l’abonnement Azure dans lequel vous êtes autorisé à créer et gérer des ressources.
    Resource group Créez un groupe de ressources avec le nom learn-deploy-container-aci-rg. N’oubliez pas le nom que vous sélectionnez, car vous devez l’utiliser dans le reste des exercices de ce module. N’oubliez pas non plus de nettoyer cette ressource une fois que vous avez terminé le module.
    Détails de l’instance
    Nom du registre Choisissez le nom de votre choix. Le nom du registre doit être unique dans Azure et contenir entre 5 et 50 caractères alphanumériques.
    Emplacement Sélectionnez un emplacement proche de vous.
    Utiliser des zones de disponibilité Acceptez la valeur par défaut.
    Plan tarifaire Standard
  5. Sélectionnez Revoir + créer. Quand la notification Validation réussie s’affiche, sélectionnez Créer. Attendez que le registre de conteneurs ait été déployé avant de continuer.

  6. Sélectionnez Accéder à la ressource. Le volet Registre de conteneurs affiche les éléments principaux de votre registre de conteneurs.

  7. Dans le menu des ressources, sous Paramètres, sélectionnez Clés d’accès. Le volet Clés d’accès pour votre registre de conteneurs apparaît.

  8. Si le paramètre Utilisateur administrateur est désactivé, cochez la case à côté de la clé d’accès Utilisateur administrateur. Le Nom d’utilisateur et les mots de passe pour votre registre de conteneurs apparaissent.

  9. Notez le Nom du registre, le Serveur de connexion, le Nom d’utilisateur et le Mot de passe pour votre registre de conteneurs.

    Notes

    Dans cet exercice, nous activons l’accès au compte administrateur afin de pouvoir charger des images et de tester le registre. Dans un environnement de production, il est important de désactiver l’accès au compte d’utilisateur administrateur et d’utiliser Microsoft Entra ID Protection dès que vous vous êtes assuré que le registre fonctionne comme prévu.

    Capture d’écran des détails des clés d’accès.

Charger l’image pour l’application de système de réservation d’hôtel sur Azure Container Registry

  1. Dans votre invite de commandes locale, exécutez la commande suivante en remplaçant <registry-name> par le nom de votre registre de conteneurs pour étiqueter l’image reservationsystem actuelle avec le nom de votre registre :

    docker tag reservationsystem:latest <registry-name>.azurecr.io/reservationsystem:latest
    
  2. Exécutez la commande docker image ls pour vérifier que l’image a été correctement étiquetée :

    docker image ls
    

    Vous devez obtenir un graphique similaire à la sortie suivante :

    REPOSITORY                                    TAG                 IMAGE ID            CREATED             SIZE
    reservationsystem                             latest              a56281e7038f        4 minutes ago       1.76GB
    <registry-name>.azurecr.io/reservationsystem  latest              a56281e7038f        4 minutes ago       1.76GB
    
  3. À l’invite de commandes, connectez-vous à votre registre de conteneurs Azure. Utilisez la commande docker login et spécifiez le serveur de connexion pour le registre que vous avez noté précédemment. Lorsque vous y êtes invité, entrez le nom d’utilisateur et le mot de passe de vos clés d’accès.

    docker login <login-server>
    

    Remarque

    Vous risquez de recevoir en réponse une erreur d’un démon, indiquant que votre application n’est pas inscrite à Microsoft Entra ID. Comme indiqué plus haut dans cet exercice, vous avez activé la clé d’accès Utilisateur administrateur pour tester notre déploiement.

  4. Entrez la commande suivante en remplaçant <registry-name> par le nom de votre propre registre pour charger l’image dans votre registre dans Azure Container Registry :

    docker push <registry-name>.azurecr.io/reservationsystem:latest
    

    Attendez la fin du chargement. Ce processus peut prendre plusieurs minutes pour pousser tous les objets de l’image vers votre dépôt. Vous pouvez observer la progression à mesure que chaque objet passe de Attente en cours à Préparation en cours à Push (envoi) à Envoyé (pushed).

Vérifier le contenu du registre

Pour le reste de l’exercice, vous allez revenir au portail Azure.

  1. Dans le portail Azure, revenez à votre registre de conteneurs.

  2. Dans le menu des ressources, sous Services, sélectionnez Référentiels. Le volet Référentiels de votre registre de conteneurs s’affiche.

  3. Vérifiez que le dépôt reservationsystem apparaît. Sélectionnez le référentiel reservationsystem et vérifiez que celui-ci contient une image avec l’étiquette latest.

    Capture d’écran montrant le dépôt et l’image étiquetée du conteneur du système de réservation dans le registre.

Charger et exécuter une image à l’aide d’Azure Container Instances

  1. Dans le portail Azure, sélectionnez Créer une ressource. Le volet Créer une ressource apparaît.

  2. Dans le menu des ressources, sélectionnez Conteneurs, puis Instances de conteneur.

    Capture d’écran montrant Instances de conteneur.

    Le volet Créer une instance de conteneur s’affiche.

    Plusieurs étapes sont nécessaires pour configurer une instance de conteneur. Commencez par définir les informations du groupe de ressources et les détails du conteneur. Ensuite, configurez les options réseau du conteneur et la stratégie de redémarrage.

  3. Sous l’onglet Informations de base, entrez les valeurs suivantes pour chaque paramètre.

    Paramètre Valeur
    Détails du projet
    Abonnement Sélectionnez l’abonnement Azure par défaut dans lequel vous êtes autorisé à créer et gérer des ressources
    Resource group Réutilisez le groupe de ressources existant learn-deploy-container-aci-rg
    Détails du conteneur
    Nom du conteneur hotelsysteminstance
    Région Utilisez l’emplacement par défaut.
    Zones de disponibilité Accepter les valeurs par défaut
    Référence (SKU) Standard
    Source de l’image Autre registre
    Type d’image Privé
    Image <registry-name>.azurecr.io/reservationsystem:latest
    Serveur de connexion du registre d’images Entrez le nom du serveur de connexion pour votre registre.
    Nom d’utilisateur du registre d’images Entrez le nom d’utilisateur pour votre registre.
    Mot de passe du registre d’images Entrez le mot de passe pour votre registre.
    Type de système d’exploitation Linux
    Taille Laissez la Taille par défaut définie sur 1 processeur virtuel, 1,5 Gio de mémoire, 0 processeur graphique
  4. Sélectionnez Suivant : Réseau.

  5. Sous l’onglet Réseau, entrez les valeurs suivantes pour chaque paramètre.

    Paramètre Value
    Type de réseau Public
    Étiquette du nom DNS Choisissez un nom unique qui sera utilisé dans l’URL du conteneur.
    Réutilisation de l’étendue de l’étiquette de nom DNS Accepter les valeurs par défaut
    Ports
    Ports 80
    Protocole de ports TCP
  6. Sélectionnez Suivant : Avancé.

  7. Sous l’onglet Avancé, entrez les valeurs suivantes pour chaque paramètre.

    Paramètre Valeur
    Stratégie de redémarrage Toujours
    Variables d'environnement ne renseignez aucun des paramètres
    Remplacement de commande Laisser vide
  8. Sélectionnez Revoir + créer. Attendez la fin de la validation, puis corrigez les erreurs éventuelles.

  9. Sélectionnez Create (Créer).

  10. Une fois l’instance de conteneur créée, sélectionnez Accéder à la ressource. Le volet de votre instance de conteneur s’affiche.

  11. Dans le volet Vue d’ensemble, recherchez le nom de domaine complet (FQDN) de l’instance de conteneur.

    Capture d’écran montrant le volet Nouveau dans le Portail Azure où sont affichées les propriétés de conteneur, avec mise en surbrillance du nom de domaine complet.

  12. À l’aide d’un navigateur web, accédez à l’URL http://FQDN/api/reservations/1 et remplacez FQDN par le nom de domaine complet de votre instance de conteneur. Par exemple, l’utilisation du nom FQDN visible dans la capture d’écran ci-dessus ressemblerait à ce qui suit :

    http://hotel.southcentralus.azurecontainer.io/api/reservations/1
    

    L’application web doit répondre avec un objet JSON contenant les détails de la réservation 1.

Félicitations ! Vous avez chargé l’image Docker sur Azure Container Registry et exécuté l’image en utilisant le service Azure Container Instances.