Hızlı Başlangıç: ARM şablonu kullanarak Azure'da kapsayıcı örneği dağıtma

Sunucusuz Docker kapsayıcılarınızı kolay ve hızlı bir şekilde Azure'da çalıştırmak için Azure Container Instances hizmetini kullanın. Azure Kubernetes Service gibi bir eksiksiz kapsayıcı düzenleme platformu gerekmiyorsa, bir uygulamayı isteğe bağlı olarak bir kapsayıcı örneğine dağıtın. Bu hızlı başlangıçta, yalıtılmış bir Docker kapsayıcısı dağıtmak ve web uygulamasını genel IP adresiyle kullanılabilir hale getirmek için bir Azure Resource Manager şablonu (ARM şablonu) kullanacaksınız.

Azure Resource Manager şablonu, projenizin altyapısını ve yapılandırmasını tanımlayan bir JavaScript Nesne Gösterimi (JSON) dosyasıdır. Bu şablonda, bildirim temelli sözdizimi kullanılır. Dağıtımı oluşturmak için programlama komutlarının sırasını yazmadan hedeflenen dağıtımınızı açıklarsınız.

Ortamınız önkoşulları karşılıyorsa ve ARM şablonlarını kullanma hakkında bilginiz varsa, Azure’a dağıtma düğmesini seçin. Şablon Azure portalda açılır.

Button to deploy the Resource Manager template to Azure.

Önkoşullar

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Şablonu gözden geçirme

Bu hızlı başlangıçta kullanılan şablon Azure Hızlı Başlangıç Şablonlarından alınmıştır.

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

Şablonda aşağıdaki kaynak tanımlanır:

Daha fazla Azure Container Instances şablon örneği, hızlı başlangıç şablonu galerisinde bulunabilir.

Şablonu dağıtma

  1. Aşağıdaki görüntüyü seçerek Azure'da oturum açıp bir şablon açın. Şablon, başka bir konumda bir kayıt defteri ve bir çoğaltma oluşturur.

    Button to deploy the Resource Manager template to Azure.

  2. Aşağıdaki değerleri seçin veya girin.

    • Abonelik: Bir Azure aboneliği seçin.
    • Kaynak grubu: Yeni oluştur'u seçin, kaynak grubu için benzersiz bir ad girin ve tamam'ı seçin.
    • Konum: Kaynak grubu için bir konum seçin. Örnek: Orta ABD.
    • Ad: Örnek için oluşturulan adı kabul edin veya bir ad girin.
    • Resim: Varsayılan görüntü adını kabul edin. Bu örnek Linux görüntüsü, statik html sayfasına hizmet veren Node.js yazılmış küçük bir web uygulamasını paketler.

    Kalan özellikler için varsayılan değerleri kabul edin.

    Hüküm ve koşulları gözden geçirin. Kabul ediyorsanız, yukarıda belirtilen hüküm ve koşulları kabul ediyorum'ı seçin.

    Template properties

  3. Örnek başarıyla oluşturulduktan sonra bir bildirim alırsınız:

    Portal notification

Şablonu dağıtmak için Azure portalı kullanılır. Azure portalına ek olarak Azure PowerShell, Azure CLI ve REST API'sini de kullanabilirsiniz. Diğer dağıtım yöntemlerini öğrenmek için bkz . Şablonları dağıtma.

Dağıtılan kaynakları gözden geçirme

Kapsayıcı örneğinin özelliklerini gözden geçirmek için Azure portalını veya Azure CLI gibi bir aracı kullanın.

  1. Portalda Kapsayıcı Örnekleri'ni arayın ve oluşturduğunuz kapsayıcı örneğini seçin.

  2. Genel Bakış sayfasında, örneğin durumunu ve IP adresini not edin.

    Instance overview

  3. Durumu Çalışıyor olduğunda, tarayıcınızda IP adresine gidin.

    App deployed using Azure Container Instances viewed in browser

Kapsayıcı günlüklerini görüntüleme

Kapsayıcı örneğinin günlüklerini görüntülemek, kapsayıcınızın veya çalıştırdığı uygulamanın sorunlarını gidermede yardımcı olur.

Kapsayıcının günlüklerini görüntülemek için Ayarlar altında Kapsayıcı Günlükleri'ni> seçin. Uygulamayı tarayıcınızda görüntülediğinizde HTTP GET isteğinin oluşturulduğunu görmeniz gerekir.

Container logs in the Azure portal

Kaynakları temizleme

Kapsayıcıyla işiniz bittiğinde, kapsayıcı örneğinin Genel Bakış sayfasında Sil'i seçin. Sorulduğunda silme işlemini onaylayın.

Sonraki adımlar

Bu hızlı başlangıçta, genel bir Microsoft görüntüsünden bir Azure kapsayıcı örneği oluşturdunuz. Kapsayıcı görüntüsünü oluşturup özel bir Azure kapsayıcı kayıt defterinden dağıtmak istiyorsanız Azure Container Instances öğreticisine geçin.

Şablon oluşturma işleminde size yol gösteren adım adım öğretici için bkz: