Bagikan melalui


Mulai cepat: Menyebarkan instans kontainer di Azure menggunakan templat ARM

Gunakan Azure Container Instances untuk menjalankan kontainer Docker tanpa server di Azure dengan mudah dan cepat. Sebarkan aplikasi ke instans kontainer sesuai permintaan saat Anda tidak memerlukan platform orkestrasi kontainer lengkap seperti Azure Kubernetes Service. Dalam mulai cepat ini, Anda menggunakan templat Azure Resource Manager (template ARM) untuk menyebarkan kontainer Docker yang terisolasi dan membuat aplikasi webnya tersedia dengan alamat IP publik.

Templat Azure Resource Manager adalah file JavaScript Object Notation (JSON) yang menentukan infrastruktur dan konfigurasi untuk proyek Anda. Template tersebut menggunakan sintaksis deklaratif. Anda menjelaskan penyebaran yang Dimaksudkan tanpa menulis urutan perintah pemrograman untuk membuat penyebaran.

Jika lingkungan Anda telah memenuhi prasyarat dan Anda terbiasa menggunakan templat ARM, pilih tombol Sebarkan ke Azure. Templat terbuka di portal Azure.

Tombol untuk menyebarkan templat Resource Manager ke Azure.

Prasyarat

Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

Meninjau templat

Templat yang digunakan di mulai cepat ini berasal dari Templat Mulai Cepat 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')]"
    }
  }
}

Sumber daya berikut ini ditentukan di templat:

Lebih banyak sampel templat Azure Container Instances dapat ditemukan di galeri templat mulai cepat.

Menyebarkan templat

  1. Pilih gambar berikut untuk masuk ke Azure dan buka templat. Template membuat registri dan replika di lokasi lain.

    Tombol untuk menyebarkan templat Resource Manager ke Azure.

  2. Pilih atau masukkan nilai berikut.

    • Langganan: pilih langganan Azure.
    • Grup sumber daya: pilih Buat baru, masukkan nama unik untuk grup sumber daya, lalu pilih OK.
    • Lokasi: pilih lokasi untuk grup sumber daya. Contoh: US Tengah.
    • Nama: terima nama yang dihasilkan untuk instans, atau masukkan nama.
    • Gambar: terima nama gambar default. Sampel gambar Linux ini mengemas aplikasi web kecil yang ditulis di Node.js yang menyajikan halaman HTML statis.

    Terima nilai default untuk properti yang tersisa.

    Tinjau syarat dan ketentuan. Jika setuju, pilih Saya menyetujui syarat dan ketentuan yang dinyatakan di atas.

    Properti templat

  3. Setelah instans berhasil dibuat, Anda mendapatkan pemberitahuan:

    Pemberitahuan portal

Portal Microsoft Azure digunakan untuk menyebarkan template. Selain portal Microsoft Azure, Anda juga dapat menggunakan Azure PowerShell, Azure CLI, dan REST API. Untuk mempelajari metode penyebaran lainnya, lihat Menyebarkan templat.

Meninjau sumber daya yang disebarkan

Gunakan portal Microsoft Azure atau alat seperti Azure CLI untuk meninjau properti instans kontainer.

  1. Di portal, cari Container Instances, dan pilih instans kontainer yang Anda buat.

  2. Di halaman Gambaran Umum, catat Status instans dan alamat IP-nya.

    Gambaran umum instans

  3. Setelah statusnya Berjalan, navigasikan ke alamat IP di browser Anda.

    Aplikasi yang disebarkan menggunakan Azure Container Instances ditampilkan di browser

Menampilkan log kontainer

Melihat log untuk instans kontainer sangat membantu saat memecahkan masalah terkait kontainer Anda atau aplikasi yang dijalankannya.

Untuk menampilkan log kontainer, di bawah Pengaturan, pilih Kontainer>Log. Anda akan melihat permintaan HTTP GET yang dihasilkan saat Anda menampilkan aplikasi di browser Anda.

Log kontainer di portal Microsoft Azure

Membersihkan sumber daya

Jika Anda sudah selesai dengan kontainer, di halaman Gambaran Umum untuk instans kontainer, pilih Hapus. Ketika diminta, konfirmasikan penghapusan.

Langkah berikutnya

Dalam mulai cepat ini, Anda membuat instans kontainer Azure dari gambar publik Microsoft. Jika Anda ingin membuat gambar kontainer dan menyebarkannya dari registri kontainer Azure privat, lanjutkan ke tutorial Azure Container Instances.

Untuk tutorial langkah demi langkah yang memandu Anda melalui proses pembuatan template, lihat: