Exercice : Déployer une image Docker sur une instance de conteneur Azure
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
Connectez-vous au portail Azure avec votre abonnement Azure.
Dans le menu de ressources ou dans la page Accueil, sélectionnez Créer une ressource. Le volet Créer une ressource apparaît.
Dans le menu, sélectionnez Conteneurs, puis Registre de conteneurs.
Le volet Créer un Registre de conteneurs s’affiche.
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 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.
Sélectionnez Accéder à la ressource. Le volet Registre de conteneurs affiche les éléments principaux de votre registre de conteneurs.
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.
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.
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.
Charger l’image pour l’application de système de réservation d’hôtel sur Azure Container Registry
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’imagereservationsystem
actuelle avec le nom de votre registre :docker tag reservationsystem:latest <registry-name>.azurecr.io/reservationsystem:latest
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
À 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.
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.
Dans le portail Azure, revenez à votre registre de conteneurs.
Dans le menu des ressources, sous Services, sélectionnez Référentiels. Le volet Référentiels de votre registre de conteneurs s’affiche.
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.
Charger et exécuter une image à l’aide d’Azure Container Instances
Dans le portail Azure, sélectionnez Créer une ressource. Le volet Créer une ressource apparaît.
Dans le menu des ressources, sélectionnez Conteneurs, puis 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.
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 Sélectionnez Suivant : Réseau.
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 Sélectionnez Suivant : Avancé.
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 Sélectionnez Revoir + créer. Attendez la fin de la validation, puis corrigez les erreurs éventuelles.
Sélectionnez Create (Créer).
Une fois l’instance de conteneur créée, sélectionnez Accéder à la ressource. Le volet de votre instance de conteneur s’affiche.
Dans le volet Vue d’ensemble, recherchez le nom de domaine complet (FQDN) de l’instance de conteneur.
À 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.