Maîtrisez le déploiement d’Azure Docker : Guide étape par étape

Pour ce projet ATA, vous allez avoir un aperçu de la façon dont Docker fonctionne dans Azure. Dans ce tutoriel Azure Docker, vous allez en apprendre davantage sur le service Azure Container Instance (ACI) de Microsoft.

Azure Container Instance est un cluster Kubernetes hébergé via l’hébergement Docker Azure. Il vous permet de déployer n’importe quelle image Docker (Windows et Linux) et de l’exécuter en tant que conteneur. Chaque conteneur Docker Azure s’exécute de manière autonome, utilisant son propre CPU et sa mémoire alloués.

Dans ce projet, vous apprendrez comment déployer et exécuter votre premier Azure Container Instance, basé sur une image de conteneur ASP.NET fournie par Microsoft dans le cloud public Azure.

À la fin de ce projet, vous aurez un site web ASP.NET fonctionnant dans un conteneur Docker hébergé par le service Azure Container Instance.

Exigences en matière d’environnement et de connaissances

Pour tirer le meilleur parti de ce tutoriel Azure Docker, vous devez disposer des éléments suivants :

  1. A local Windows 10 client with Docker Desktop installed.
  2. A Microsoft Azure account
  3. Accès à un compte Azure avec les autorisations nécessaires pour déployer un conteneur dans le Azure Container Registry
  4. Installation du Azure CLI sur Windows. Vous apprendrez à partir de la ligne de commande.
  5. A beginner understanding of containers and Docker.
  6. A registered Docker ID.

Si vous n’aimez pas l’exemple choisi dans ce tutoriel Azure Docker, vous pouvez toujours utiliser une autre image de conteneur sur le Docker Hub.

Sans plus tarder, passons à la construction de ce projet!

Exécution d’un conteneur Docker

Pour éviter toute frustration ultérieure lorsque quelque chose ne fonctionne pas, validez toujours d’abord que le moteur Docker est en cours d’exécution. Pour ce faire, ouvrez une invite de commande ou une session PowerShell et exécutez docker info.

Vous pouvez voir ci-dessous le type de sortie que vous devriez recevoir.

Inspecting information about the local Docker installation

Pour valider le démarrage d’un conteneur Docker, exécutez docker run hello-world. En coulisses, la commande docker effectue quelques étapes:

  1. Cherche un conteneur appelé hello-word localement sur votre ordinateur Windows 10.
  2. Lorsqu’il n’est pas trouvé, il se connecte ensuite au dépôt public Docker Hub pour rechercher la dernière version d’un conteneur portant le nom hello-world.
  3. Lorsque le conteneur est trouvé, il est alors téléchargé depuis le dépôt Docker Hub.
  4. Une fois téléchargé, le conteneur est démarré et exécute les instructions de démarrage fournies dans l’image utilisée par le conteneur.

Vous pouvez voir un exemple de sortie ci-dessous.

Download a sample Docker container called hello-world

Démarrage d’un conteneur ASP.NET de démonstration

Maintenant que vous savez comment télécharger un conteneur Docker et l’exécuter, téléchargez et exécutez le conteneur sur lequel vous travaillerez dans ce projet. Ce conteneur Docker est une image d’application Web ASP.Net Core.

Pour télécharger l’image du tutoriel Azure Docker, exécutez la commande suivante :

> docker run --name aspnetcore_sample --rm -it -p 8000:80 mcr.microsoft.com/dotnet/core/samples:aspnetapp

Cette commande effectue les actions suivantes :

  1. Comme l’image Docker n’est pas disponible localement, Docker télécharge un conteneur appelé aspnetapp depuis un autre registre de conteneurs public hébergé par Microsoft situé à mcr.microsoft.com dans le répertoire dotnet/core/samples. Le registre de conteneurs mcr.microsoft.com est similaire à Docker Hub public mais est maintenu par Microsoft et héberge uniquement des images de conteneurs Microsoft.
  2. Exécute le conteneur sur votre ordinateur local.
  3. (-p 8000:80) – Mappe le port TCP d’écoute 80 du conteneur vers le port TCP 8000. Cela vous permet d’accéder à l’application web sur le port 8000 en local.
  4. (-it) – Le conteneur sera lancé de manière interactive, ce qui signifie que vous serez immédiatement amené dans la console lors de son démarrage.
  5. (—rm) – Lorsque le conteneur est arrêté, il sera supprimé.

Vous pouvez voir ci-dessous la sortie que vous pouvez attendre.

Downloading a container instance from Microsoft

6.   À partir de votre navigateur, connectez-vous à cette application de conteneur en cours d’exécution en accédant à http://localhost:8000. Vous devriez voir l’application web d’exemple ASP.Net

Sample ASP.NET web app

Création d’une instance de registre de conteneurs Azure (ACR)

Une fois que vous avez téléchargé le conteneur ASP.NET sur votre ordinateur local, il est maintenant temps de le migrer vers l’hébergement Docker Azure avec ACI et d’exécuter ce conteneur dans Azure. Pour ce faire, nous allons pousser le conteneur de démonstration vers Azure Container Registry (ACR). ACR est un service qui vous permet de déployer et d’exécuter des conteneurs Docker directement dans Azure.

  1. Connectez-vous au Portail Azure.
  2. Cliquez sur l’icône du terminal en haut pour démarrer Azure Cloud Shell.
Starting Azure Cloud Shell

3. Assurez-vous de choisir l’interpréteur de commandes Bash comme indiqué ci-dessous.

Bash in Azure Cloud Shell

4. Créez maintenant un groupe de ressources Azure pour y placer une instance de ACR en utilisant la commande az group create ci-dessous.

> az group create --name <RGname> --location <Azure Region of choice>
Creating a resource group

5. Créez maintenant le ACR à l’intérieur du groupe de ressources en utilisant la commande az acr create. Vous pouvez voir ci-dessous un exemple de création d’un ACR avec un SKU Basic en utilisant le paramètre admin-enabled défini sur true. Ceci est défini sur true car cela vous permet de gérer les ressources ultérieurement.

> az acr create --resource-group <RGname> --name <ACRname> --sku Basic
 --admin-enabled true
Creating an Azure Container Registry

–admin-enabled true

Une fois terminé, vous devriez maintenant avoir une instance ACR en cours d’exécution à l’intérieur de votre groupe de ressources. L’hébergement Docker Azure à la rescousse !

Connexion à l’instance ACR localement

  1. Maintenant, vous devez passer du Cloud Shell Azure à votre ordinateur Windows local pour terminer la configuration.
  2. Sur votre machine locale, lancez PowerShell ou une invite de commande avec des droits d’administration. Je vais utiliser PowerShell.
  3. Authentifiez-vous à Azure avec Azure CLI en exécutant az login et suivez les instructions pour fournir vos informations d’identification.
Authenticating to Azure

Une fois authentifié avec succès, vous devriez voir une sortie JSON indiquant l’utilisateur avec lequel vous venez de vous authentifier.

> az acr login --name <ACR-Name> --resource-group <RG Name>
Logging onto ACR

4.   Ensuite, authentifiez-vous à l’instance ACR que vous venez de créer dans Azure Cloud Shell en utilisant la commande az acr login à l’aide de la commande ci-dessous. Vous pouvez voir que je me connecte à une instance ACR appelée nopacr1, dans le groupe de ressources Azure NOPRG.

Mise à jour de l’étiquette de l’image Docker

  1. Vous êtes maintenant prêt à pousser votre image Docker locale vers votre instance ACR dans l’hébergement Docker Azure ou ACI. Mais vous devez d’abord remplir une dépendance ACR. Toutes les images Docker poussées vers l’instance ACR doivent avoir le nom de l’instance ACR dans le nom de l’image.
Finding the ACR Docker image

Recherchez le numéro d’identification de l’image Docker ou le nom de l’image en utilisant la commande docker images.

> docker tag mcr.microsoft.com/dotnet/core/samples:aspnetapp <ACRName>.azurecr.io/<imagenameofchoice>
Updating the Docker tag

2.   Mettez à jour l’étiquette de l’image Docker pour l’image Docker en exécutant la commande docker tag comme indiqué ci-dessous. Si vous suivez la convention de nommage, utilisez le nom ACR de NOPACR1 et définissez l’étiquette comme nopacr1.azurecr.io. Pour l’image elle-même, utilisez le nom dotnetsample.

Verifying Docker tag

3.   Vérifiez que l’étiquette a été appliquée en utilisant à nouveau la commande docker images. Vous devriez maintenant voir que l’étiquette a été mise à jour.

  1. Téléchargement de l’image Docker vers l’instance ACR et vérification
> docker push <ACRName>.azurecr.io/<nameofimage>
Pushing Docker image to ACR

Maintenant, téléchargez l’image locale vers l’instance ACR en utilisant la commande docker push comme indiqué ci-dessous en fournissant l’étiquette du nom DNS où se trouve l’instance ACR.

Inspecting ACR instance in Azure portal

2. Une fois téléchargé, vérifiez que le téléchargement vers l’instance ACR s’est bien passé en utilisant le Portail Azure en naviguant vers Tous les services —> Registres de conteneurs Azure et en sélectionnant l’instance ACR que vous avez créée précédemment.

Inspecting Docker repo

3. Dans le menu de la lame à gauche, sous la section Services, cliquez sur Dépôts. L’image Docker que vous venez de télécharger dans votre instance ACR devrait apparaître ici.

Inspecting Docker image

4. Cliquez sur l’image et vous verrez sa version ainsi que d’autres informations utiles.

Exécution de l’instance de conteneur Azure (ACI)

  1. Vous avez maintenant créé une instance ACR, étiqueté une image de conteneur Docker avec le nom ACR comme référence, et téléchargé l’image vers l’instance ACR. Maintenant, il est temps d’utiliser l’Instance de Conteneur Azure (ACI) pour exécuter l’image Docker stockée dans votre instance ACR.
Creating a container instance

En continuant depuis l’étape précédente, cliquez sur le … à côté de latest, et choisissez Exécuter l’instance. Cela ouvrira la lame Créer une instance de conteneur.

  • 2. Complétez les champs dans la boîte Créer une instance de conteneur ci-dessous en utilisant les informations suivantes :
  • Nom du conteneur – tout nom que vous souhaitez utiliser pour ce conteneur en cours d’exécution
  • Type de système d’exploitation – Linux (Cela dépend du conteneur source. Si vous utilisez le même conteneur dans ce projet, cela peut être Windows.)
  • Abonnement – votre abonnement Azure
  • Groupe de ressources – tout groupe de ressources Azure existant ou nouveau où ajouter l’instance de conteneur

Emplacement – basé sur le groupe de ressources

Creating a container instance

Pour ce tutoriel Azure Docker ASP.NET container, vous pouvez laisser tous les autres paramètres inchangés. Dans un environnement de production, en fonction de ce que le conteneur exécute, vous pourriez avoir besoin de modifier ces paramètres.

Successful container instance deployment

3. Appuyez sur OK pour créer l’instance du conteneur.
4. Une fois que l’instance du conteneur a été déployée, vous devriez voir une page qui ressemble à l’exemple ci-dessous.

Inspecting created container instance

5. Une fois le déploiement terminé, ouvrez l’ACI dans le portail en naviguant vers Tous les services —> Instances de conteneurs. Une fois ici, accédez à l’instance de l’Azure Container Instance (ACI) qui vient d’être créée. Vous devriez voir l’instance affichée ci-dessous.

Sample ASP.NET Core webpage

6. Copiez l’adresse IP dans le coin supérieur droit et collez-la dans un navigateur web. Votre application web ASP.NET d’exemple devrait se charger à partir de votre Azure Container Instance (ACI) et afficher une page web comme indiqué ci-dessous.

Si vous avez fini avec ce conteneur, vous pouvez ensuite utiliser la commande az container delete pour supprimer le conteneur.

Conclusion

Source:
https://adamtheautomator.com/azure-docker-tutorial/