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:

View an app deployed to Azure Container Instances in browser

Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure 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.

Buat 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 buat grup az berikut:

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 mulai cepat ini, Anda menggunakan gambar mcr.microsoft.com/azuredocs/aci-helloworld publik. Gambar ini mengemas aplikasi web kecil yang ditulis di Simpul.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 mulai cepat ini, Anda akan menyebarkan kontainer dengan label nama DNS sehingga aplikasi web dapat dijangkau secara umum.

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

Dalam beberapa detik, Anda harus mendapatkan respons dari Azure CLI yang menunjukkan bahwa penyebaran telah 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 dalam kontainer Docker ke Azure.

View an app deployed to Azure Container Instances in 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.

Tarik log instans kontainer dengan perintah log kontainer az:

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 terlampir, refresh browser Anda beberapa kali untuk menghasilkan beberapa output tambahan. Setelah selesai, copot konsol Anda dengan Control+C. Anda akan melihat output yang mirip dengan hal 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 telah dihapus, jalankan perintah daftar kontainer az:

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

Kontainer mycontainer seharusnya tidak 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 mulai cepat ini, Anda membuat instans kontainer Azure menggunakan gambar 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 mulai cepat Azure Kubernetes Service (AKS).