Démarrage rapide : Déployer une instance de conteneur dans Azure à l’aide d’un modèle Resource Manager

Utilisez Azure Container Instances pour exécuter, facilement et rapidement, des conteneurs Docker serverless dans Azure. Déployez une application sur une instance de conteneur à la demande lorsque vous n’avez pas besoin d’une plateforme d’orchestration de conteneur complète telle qu’Azure Kubernetes Service. Dans ce guide de démarrage rapide, vous utilisez un modèle Resource Manager (Azure Resource Manager) pour déployer un conteneur Docker isolé et mettre son application web à disposition avec une adresse IP publique.

Un modèle Azure Resource Manager est un fichier JSON (JavaScript Object Notation) qui définit l’infrastructure et la configuration de votre projet. Le modèle utilise la syntaxe déclarative. Vous décrivez votre déploiement prévu sans écrire la séquence de commandes de programmation pour créer le déploiement.

Si votre environnement remplit les prérequis et que vous êtes déjà familiarisé avec l’utilisation des modèles ARM, sélectionnez le bouton Déployer sur Azure. Le modèle s’ouvre dans le portail Azure.

Button to deploy the Resource Manager template to Azure.

Prérequis

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Vérifier le modèle

Le modèle utilisé dans ce démarrage rapide est tiré des modèles de démarrage rapide Azure.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.26.54.24096",
      "templateHash": "15999594271314721416"
    }
  },
  "parameters": {
    "name": {
      "type": "string",
      "defaultValue": "acilinuxpublicipcontainergroup",
      "metadata": {
        "description": "Name for the container group"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "image": {
      "type": "string",
      "defaultValue": "mcr.microsoft.com/azuredocs/aci-helloworld",
      "metadata": {
        "description": "Container image to deploy. Should be of the form repoName/imagename:tag for images stored in public Docker Hub, or a fully qualified URI for other registries. Images from private registries require additional registry credentials."
      }
    },
    "port": {
      "type": "int",
      "defaultValue": 80,
      "metadata": {
        "description": "Port to open on the container and the public IP address."
      }
    },
    "cpuCores": {
      "type": "int",
      "defaultValue": 1,
      "metadata": {
        "description": "The number of CPU cores to allocate to the container."
      }
    },
    "memoryInGb": {
      "type": "int",
      "defaultValue": 2,
      "metadata": {
        "description": "The amount of memory to allocate to the container in gigabytes."
      }
    },
    "restartPolicy": {
      "type": "string",
      "defaultValue": "Always",
      "allowedValues": [
        "Always",
        "Never",
        "OnFailure"
      ],
      "metadata": {
        "description": "The behavior of Azure runtime if container has stopped."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.ContainerInstance/containerGroups",
      "apiVersion": "2023-05-01",
      "name": "[parameters('name')]",
      "location": "[parameters('location')]",
      "properties": {
        "containers": [
          {
            "name": "[parameters('name')]",
            "properties": {
              "image": "[parameters('image')]",
              "ports": [
                {
                  "port": "[parameters('port')]",
                  "protocol": "TCP"
                }
              ],
              "resources": {
                "requests": {
                  "cpu": "[parameters('cpuCores')]",
                  "memoryInGB": "[parameters('memoryInGb')]"
                }
              }
            }
          }
        ],
        "osType": "Linux",
        "restartPolicy": "[parameters('restartPolicy')]",
        "ipAddress": {
          "type": "Public",
          "ports": [
            {
              "port": "[parameters('port')]",
              "protocol": "TCP"
            }
          ]
        }
      }
    }
  ],
  "outputs": {
    "name": {
      "type": "string",
      "value": "[parameters('name')]"
    },
    "resourceGroupName": {
      "type": "string",
      "value": "[resourceGroup().name]"
    },
    "resourceId": {
      "type": "string",
      "value": "[resourceId('Microsoft.ContainerInstance/containerGroups', parameters('name'))]"
    },
    "containerIPv4Address": {
      "type": "string",
      "value": "[reference(resourceId('Microsoft.ContainerInstance/containerGroups', parameters('name')), '2023-05-01').ipAddress.ip]"
    },
    "location": {
      "type": "string",
      "value": "[parameters('location')]"
    }
  }
}

La ressource suivante est définie dans le modèle :

Vous trouverez d’autres exemples de modèles Azure Container Instances dans la galerie de modèles de démarrage rapide.

Déployer le modèle

  1. Cliquez sur l’image ci-après pour vous connecter à Azure et ouvrir un modèle. Le modèle crée un registre et un réplica dans une autre localisation.

    Button to deploy the Resource Manager template to Azure.

  2. Sélectionnez ou entrez les valeurs suivantes.

    • Abonnement : sélectionnez un abonnement Azure.
    • Groupe de ressources : sélectionnez Créer, entrez un nom unique pour le groupe de ressources, puis sélectionnez OK.
    • Emplacement : sélectionnez un emplacement pour le groupe de ressources. Exemple : USA Centre.
    • Nom : acceptez le nom généré pour l’instance, ou entrez un nom.
    • Image : acceptez le nom d’image par défaut. Cet exemple d’image Linux contient une petite application web écrite en Node.js qui se présente sous la forme d’une page HTML statique.

    Acceptez les valeurs par défaut pour les autres propriétés.

    Passez en revue les conditions générales. Si vous acceptez, sélectionnez J’accepte les termes et conditions mentionnés ci-dessus.

    Template properties

  3. Une fois l’instance créée avec succès, vous recevez une notification :

    Portal notification

Le portail Azure est utilisé pour déployer le modèle. Outre le portail Azure, vous pouvez utiliser Azure PowerShell, l’interface Azure CLI et l’API REST. Pour découvrir d’autres méthodes de déploiement, consultez Déployer des modèles.

Vérifier les ressources déployées

Utilisez le portail Azure ou un outil tel que l’interface de ligne de commande Azure pour passer en revue les propriétés de l’instance de conteneur.

  1. Dans le portail, recherchez Instances de conteneur, puis sélectionnez l’instance de conteneur que vous avez créée.

  2. Dans la page Vue d’ensemble, notez l’État de l’instance et son Adresse IP.

    Instance overview

  3. Une fois que son état est En cours d’exécution, accédez à l’adresse IP dans votre navigateur.

    App deployed using Azure Container Instances viewed in browser

Afficher les journaux d’activité du conteneur

Il est utile d’afficher les journaux d’activité d’une instance de conteneur pour résoudre des problèmes liés au conteneur ou à l’application qu’il exécute.

Pour voir les journaux du conteneur, sous Paramètres, sélectionnez Conteneurs>Journaux. Vous devez normalement voir la requête HTTP GET générée quand vous affichez l’application dans votre navigateur.

Container logs in the Azure portal

Nettoyer les ressources

Quand vous avez terminé avec le conteneur, dans la page Vue d’ensemble de l’instance de conteneur, sélectionnez Supprimer. Quand vous y êtes invité, confirmez la suppression.

Étapes suivantes

Dans ce guide de démarrage rapide, vous avez créé une instance de conteneur Azure à partir d’une image Microsoft publique. Si vous voulez créer une image conteneur et la déployer à partir d’un registre de conteneurs Azure privé, passez au didacticiel Azure Container Instances.

Pour obtenir un tutoriel pas à pas vous guidant tout au long du processus de création d’un modèle, consultez :

Créer et déployer votre premier modèle Resource Manager[