Partager via


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

Utilisez Azure Container Instances pour exécuter des conteneurs Docker serverless dans Azure avec simplicité et vitesse. Déployez une application sur une instance de conteneur à la demande quand vous n’avez pas besoin d’une plateforme d’orchestration de conteneur complète comme Azure Kubernetes Service. Dans ce guide de démarrage rapide, vous utilisez un modèle Azure Resource Manager (modèle ARM) pour déployer un conteneur Docker isolé et rendre son application web disponible 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.

Bouton pour déployer le modèle Resource Manager sur Azure.

Prerequisites

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#",
  "languageVersion": "2.0",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.37.4.10188",
      "templateHash": "7099805986652764357"
    }
  },
  "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."
      }
    },
    "zone": {
      "type": "string",
      "nullable": true,
      "metadata": {
        "description": "The availability zone to deploy the container group into. If not specified, the container group is nonzonal and might be deployed into any zone."
      }
    }
  },
  "resources": {
    "containerGroup": {
      "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"
            }
          ]
        }
      },
      "zones": "[if(not(equals(parameters('zone'), null())), createArray(parameters('zone')), null())]"
    }
  },
  "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('containerGroup').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.

Pour déployer le groupe de conteneurs dans une zone de disponibilité spécifique, définissez la zone valeur du paramètre sur la zone de disponibilité logique dans laquelle vous souhaitez effectuer le déploiement.

Important

Les déploiements zonaux sont disponibles uniquement dans les régions qui prennent en charge les zones de disponibilité. Pour voir si votre région prend en charge les zones de disponibilité, consultez la liste des régions Azure.

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 une réplique ailleurs.

    Bouton pour déployer le modèle Resource Manager sur 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 de l’image par défaut. Cet exemple d’image Linux empaquette une petite application web écrite dans Node.js qui sert une page HTML statique.

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

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

    Propriétés du modèle

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

    Notification du portail

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

Passer en revue les ressources déployées

Utilisez le portail Azure ou un outil tel qu’Azure CLI pour passer en revue les propriétés de l’instance de conteneur.

  1. Dans le portail, recherchez Container Instances et 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.

    Vue d’ensemble de l’instance

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

    Application déployée à l’aide d’Azure Container Instances vue dans le navigateur

Afficher les journaux d’activité de conteneur

L’affichage des journaux d’activité d’une instance de conteneur est utile lors de la résolution des problèmes liés à votre conteneur ou à l’application qu’il exécute.

Pour afficher les journaux du conteneur, sous Paramètres, sélectionnez Journaux des conteneurs>. Vous devez voir la requête HTTP GET générée lorsque vous avez consulté l’application dans votre navigateur.

Journaux d’activité du conteneur dans le portail Azure

Nettoyer les ressources

Lorsque 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 souhaitez 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 didacticiel pas à pas qui vous guide tout au long du processus de création d’un modèle, consultez :