Bagikan melalui


Mulai Cepat: Menyebarkan instans kontainer di Azure menggunakan Azure CLI

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 akan menggunakan Azure CLI untuk menyebarkan kontainer Docker yang terisolasi dan membuat aplikasinya tersedia dengan nama domain yang sepenuhnya memenuhi syarat (FQDN). Beberapa detik setelah Anda menjalankan satu perintah penyebaran, Anda dapat menelusuri ke aplikasi yang berjalan dalam kontainer:

Menampilkan aplikasi yang disebarkan ke Azure Container Instances di browser

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

Prasyarat

  • Mulai cepat ini memerlukan Azure CLI versi 2.0.55 atau yang lebih baru. Jika menggunakan Azure Cloud Shell, versi terbaru sudah terinstal.

    Peringatan

    Praktik terbaik: Kredensial pengguna yang diteruskan melalui antarmuka baris perintah (CLI) disimpan sebagai teks biasa di backend. Menyimpan kredensial dalam teks biasa adalah risiko keamanan; Microsoft menyarankan pelanggan untuk menyimpan kredensial pengguna dalam variabel lingkungan CLI untuk memastikan mereka dienkripsi/diubah saat disimpan di backend.

Membuat grup sumber daya

Instans kontainer Azure, seperti semua sumber daya Azure, harus disebarkan ke dalam grup sumber daya. Grup sumber daya memungkinkan Anda menata dan mengelola sumber daya Azure terkait.

Pertama, buat grup sumber daya bernama myResourceGroup di lokasi eastus dengan perintah az group create :

az group create --name myResourceGroup --location eastus

Membuat kontainer

Setelah memiliki grup sumber daya, Anda dapat menjalankan kontainer di Azure. Untuk membuat instans kontainer dengan Azure CLI, berikan nama grup sumber daya, nama instans kontainer, dan gambar kontainer Docker ke perintah buat kontainer az. Dalam panduan memulai cepat ini, Anda akan memanfaatkan gambar mcr.microsoft.com/azuredocs/aci-helloworld publik. Gambar ini berisi aplikasi web kecil yang ditulis di Node.js yang menyajikan halaman HTML statis.

Anda dapat mengekspos kontainer Anda ke internet dengan menentukan satu atau beberapa port menjadi terbuka, label nama DNS, atau keduanya. Dalam panduan cepat ini, Anda akan mengimplementasikan kontainer dengan label nama DNS sehingga aplikasi web dapat diakses oleh publik.

Jalankan perintah yang mirip dengan yang berikut ini untuk memulai instans kontainer. Set nilai --dns-name-label yang unik dalam wilayah Azure tempat Anda membuat instans. Jika Anda menerima pesan kesalahan "Label nama DNS tidak tersedia", coba label nama DNS yang berbeda.

az container create --resource-group myResourceGroup --name mycontainer --image mcr.microsoft.com/azuredocs/aci-helloworld --dns-name-label aci-demo --ports 80 --os-type linux --memory 1.5 --cpu 1

Untuk menyebarkan kontainer ke zona ketersediaan tertentu, gunakan --zone argumen dan tentukan nomor zona logis:

az container create --resource-group myResourceGroup --name mycontainer --image mcr.microsoft.com/azuredocs/aci-helloworld --dns-name-label aci-demo --ports 80 --os-type linux --memory 1.5 --cpu 1 --zone 1

Penting

Penyebaran zona hanya tersedia di wilayah yang mendukung zona ketersediaan. Untuk melihat apakah wilayah Anda mendukung zona ketersediaan, lihat Daftar Wilayah Azure.

Dalam beberapa detik, Anda akan mendapatkan respons dari Azure CLI yang menunjukkan penyebaran selesai. Periksa statusnya dengan perintah tunjukkan kontainer az:

az container show --resource-group myResourceGroup --name mycontainer --query "{FQDN:ipAddress.fqdn,ProvisioningState:provisioningState}" --out table

Saat Anda menjalankan perintah, nama domain yang sepenuhnya memenuhi syarat (FQDN) kontainer dan status penyediaannya ditampilkan.

FQDN                               ProvisioningState
---------------------------------  -------------------
aci-demo.eastus.azurecontainer.io  Succeeded

Jika kontainer ProvisioningState telah Berhasil, buka FQDN-nya melalui browser Anda. Jika Anda melihat halaman web yang mirip dengan halaman berikut ini, selamat! Anda berhasil menyebarkan aplikasi yang berjalan di kontainer Docker ke Azure.

Menampilkan aplikasi yang disebarkan ke Azure Container Instances di browser

Jika pada awalnya aplikasi tidak ditampilkan, Anda mungkin perlu menunggu beberapa detik saat DNS menyebar, lalu coba refresh browser Anda.

Penarikan log kontainer

Ketika Anda perlu memecahkan masalah kontainer atau aplikasi yang dijalankannya (atau hanya melihat outputnya), mulailah dengan melihat log instans kontainer.

Ambil log instans kontainer dengan perintah az container logs:

az container logs --resource-group myResourceGroup --name mycontainer

Output menampilkan log untuk kontainer, dan harus menunjukkan permintaan HTTP GET yang dihasilkan ketika Anda melihat aplikasi melalui browser Anda.

listening on port 80
::ffff:10.240.255.55 - - [21/Mar/2019:17:43:53 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"

Melampirkan aliran output

Selain melihat log, Anda dapat melampirkan standar lokal keluar dan aliran kesalahan standar Anda ke kontainer.

Pertama, jalankan perintah lampirkan kontainer az untuk melampirkan konsol lokal Anda ke aliran output kontainer:

az container attach --resource-group myResourceGroup --name mycontainer

Setelah terpasang, refresh browser Anda beberapa kali untuk menghasilkan beberapa output lagi. Setelah selesai, copot konsol Anda dengan Control+C. Anda akan melihat output yang mirip dengan sampel berikut:

Container 'mycontainer' is in state 'Running'...
(count: 1) (last timestamp: 2019-03-21 17:27:20+00:00) pulling image "mcr.microsoft.com/azuredocs/aci-helloworld"
(count: 1) (last timestamp: 2019-03-21 17:27:24+00:00) Successfully pulled image "mcr.microsoft.com/azuredocs/aci-helloworld"
(count: 1) (last timestamp: 2019-03-21 17:27:27+00:00) Created container
(count: 1) (last timestamp: 2019-03-21 17:27:27+00:00) Started container

Start streaming logs:
listening on port 80

::ffff:10.240.255.55 - - [21/Mar/2019:17:43:53 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:47:01 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.56 - - [21/Mar/2019:17:47:12 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"

Membersihkan sumber daya

Setelah selesai bekerja dengan kontainer, hapus menggunakan perintah hapus kontainer az:

az container delete --resource-group myResourceGroup --name mycontainer

Untuk memverifikasi bahwa kontainer dihapus, jalankan perintah az container list :

az container list --resource-group myResourceGroup --output table

Kontainer mycontainer tidak boleh muncul dalam output perintah. Jika Anda tidak memiliki kontainer lain dalam grup sumber daya, tidak ada output yang ditampilkan.

Jika Anda sudah selesai dengan grup sumber daya myResourceGroup dan semua sumber daya yang ada di dalamnya, hapus dengan perintah hapus grup az:

az group delete --name myResourceGroup

Langkah berikutnya

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

Untuk mencoba opsi menjalankan kontainer dalam sistem orkestrasi di Azure, lihat panduan memulai cepat Azure Kubernetes Service (AKS).