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 obtenir cette disponibilité, vous exécutez l’image comme une 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.

    Screenshot that shows Create a resource with 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.
    Référence SKU 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é, sélectionnez le curseur pour activer 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.

    Screenshot of the Access keys details.

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 à Poussée en cours à Poussé.

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 dépôt reservationsystem et vérifiez qu’il contient une image avec l’étiquette latest.

    Screenshot showing the repository and tagged reservation system container image in the registry.

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.

    Screenshot showing Container Instances.

    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.
    Source d’image Docker Hub ou 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.
    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.

    Screenshot that shows the New pane in Azure portal showing the Container properties with the FQDN highlighted.

  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.