Dela via


Snabbstart: Distribuera en containerinstans i Azure med hjälp av en ARM-mall

Använd Azure Container Instances till att snabbt och enkelt köra serverlösa Docker-containrar i Azure. Distribuera ett program i en containerinstans på begäran när du inte behöver en komplett plattform för containerorkestrering som Azure Kubernetes Service. I den här snabbstarten använder du en Azure Resource Manager-mall (ARM-mall) för att distribuera en isolerad Docker-container och göra dess webbprogram tillgängligt med en offentlig IP-adress.

En Azure Resource Manager-mall är en JSON-fil (JavaScript Object Notation) som definierar infrastrukturen och konfigurationen för projektet. Mallen använder deklarativ syntax. Du beskriver den avsedda distributionen utan att skriva sekvensen med programmeringskommandon för att skapa distributionen.

Om din miljö uppfyller förhandskraven och du är van att använda ARM-mallar väljer du knappen Distribuera till Azure. Mallen öppnas på Azure-portalen.

Button to deploy the Resource Manager template to Azure.

Förutsättningar

Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

Granska mallen

Mallen som används i den här snabbstarten kommer från Azure-snabbstartsmallar.

{
  "$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')]"
    }
  }
}

Följande resurs definieras i mallen:

Fler mallexempel för Azure Container Instances finns i snabbstartsmallgalleriet.

Distribuera mallen

  1. Välj följande bild för att logga in på Azure och öppna en mall. Mallen skapar ett register och en replik på en annan plats.

    Button to deploy the Resource Manager template to Azure.

  2. Välj eller ange följande värden.

    • Prenumeration: välj en Azure-prenumeration.
    • Resursgrupp: välj Skapa ny, ange ett unikt namn för resursgruppen och välj sedan OK.
    • Plats: Välj en plats för resursgruppen. Exempel: USA, centrala.
    • Namn: acceptera det genererade namnet för instansen eller ange ett namn.
    • Bild: acceptera standardbildens namn. Den här Linux-exempelbilden paket en liten webbapp som skrivits i Node.js som hanterar en statisk HTML-sida.

    Acceptera standardvärden för de återstående egenskaperna.

    Granska villkoren. Om du samtycker väljer du Jag godkänner de villkor som anges ovan.

    Template properties

  3. När instansen har skapats får du ett meddelande:

    Portal notification

Azure-portalen används för att distribuera mallen. Förutom Azure-portalen kan du använda Azure PowerShell, Azure CLI och REST API. Mer information om andra distributionsmetoder finns i Distribuera mallar.

Granska distribuerade resurser

Använd Azure-portalen eller ett verktyg som Azure CLI för att granska egenskaperna för containerinstansen.

  1. I portalen söker du efter Container Instances och väljer den containerinstans som du skapade.

  2. På sidan Översikt noterar du status för instansen och dess IP-adress.

    Instance overview

  3. När statusen är Körs navigerar du till IP-adressen i webbläsaren.

    App deployed using Azure Container Instances viewed in browser

Visa containerloggar

Att visa loggar för en containerinstans är användbart när du felsöker problem med din container eller det program som den kör.

Om du vill visa containerns loggar väljer du Containrarloggar> under Inställningar. Du bör se HTTP GET-begäran som genereras när du har granskat programmet i webbläsaren.

Container logs in the Azure portal

Rensa resurser

När du är klar med containern går du till sidan Översikt för containerinstansen och väljer Ta bort. Bekräfta borttagningen när du uppmanas att göra det.

Nästa steg

I den här snabbstarten skapade du en Azure-containerinstans från en offentlig Microsoft-avbildning. Om du vill skapa en container på egen hand och distribuera den från ett privat Azure-containerregister går du vidare till självstudien för Azure Container Instances.

En stegvis självstudiekurs som vägleder dig genom processen att skapa en mall finns i: