Hızlı Başlangıç: Azure CLI 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 kapsayıcı düzenleme platformuna ihtiyaç duyulmadığında, 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 uygulamasını tam etki alanı adı (FQDN) ile kullanılabilir hale getirmek için Azure CLI'yi kullanacaksınız. Tek bir dağıtım komutunu yürüttkten birkaç saniye sonra kapsayıcıda çalışan uygulamaya göz atabilirsiniz:

Azure Container Instances'a dağıtılan bir uygulamayı tarayıcıda görüntüleme

Azure hesabınız yoksa, başlamadan önce ücretsiz hesap oluşturun.

Önkoşullar

  • Bu hızlı başlangıç için Azure CLI'nın 2.0.55 veya sonraki bir sürümü gerekir. Azure Cloud Shell kullanılıyorsa en son sürüm zaten yüklüdür.

    Uyarı

    En iyi yöntem: Kullanıcının komut satırı arabirimi (CLI) aracılığıyla geçirilen kimlik bilgileri arka uçta düz metin olarak depolanır. Kimlik bilgilerinin düz metin olarak depolanması bir güvenlik riskidir; Microsoft, müşterilerin arka uçta depolandığında şifrelendiğinden/dönüştürüldiklerinden emin olmak için cli ortam değişkenlerinde kullanıcı kimlik bilgilerini depolamalarını önerir.

Kaynak grubu oluşturma

Tüm Azure kaynakları gibi Azure kapsayıcı örneklerinin de bir kaynak grubuna dağıtılması gerekir. Kaynak grupları, ilgili Azure kaynaklarını düzenlemenizi ve yönetmenizi sağlar.

İlk olarak, eastus konumunda myResourceGroup adlı bir kaynak grubu oluşturmak için az group create komutunu kullanın:

az group create --name myResourceGroup --location eastus

Kapsayıcı oluşturma

Artık bir kaynak grubunuz olduğuna göre Azure'da bir kapsayıcı çalıştırabilirsiniz. Azure CLI ile bir kapsayıcı örneği oluşturmak için az container create komutuna bir kaynak grubu adı, kapsayıcı örneği adı ve Docker kapsayıcı görüntüsü sağlayın. Bu hızlı başlangıçta genel mcr.microsoft.com/azuredocs/aci-helloworld görüntüyü kullanacaksınız. Bu görüntü, statik html sayfasına hizmet veren Node.js yazılmış küçük bir web uygulamasını paketler.

Açılacak bir veya daha fazla bağlantı noktası, DNS ad etiketi ya da ikisini birden belirterek kapsayıcılarınızı internete açabilirsiniz. Bu hızlı başlangıçta, web uygulamasının herkese açık olması için DNS ad etiketine sahip bir kapsayıcı dağıtacaksınız.

Kapsayıcı örneğini başlatmak için aşağıdakine benzer bir komut yürütür. Örneği oluşturduğunuz Azure bölgesinde benzersiz bir --dns-name-label değer ayarlayın. "DNS ad etiketi kullanılamıyor" hata iletisiyle karşılaşırsanız farklı bir DNS ad etiketi deneyin.

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

Kapsayıcıyı belirli bir kullanılabilirlik alanına dağıtmak için bağımsız değişkenini --zone kullanın ve mantıksal bölge numarasını belirtin:

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

Önemli

Bölgesel dağıtımlar yalnızca kullanılabilirlik alanlarını destekleyen bölgelerde kullanılabilir. Bölgenizin kullanılabilirlik alanlarını desteklenip desteklemediğini görmek için bkz. Azure Bölgeleri Listesi.

Birkaç saniye içinde Azure CLI'dan dağıtımın tamamlandığını belirten bir yanıt almanız gerekir. Durumunu az container show komutuyla denetleyebilirsiniz:

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

Komutu çalıştırdığınızda kapsayıcının tam etki alanı adı (FQDN) ve sağlama durumu görüntülenir.

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

Kapsayıcı ProvisioningStateBaşarılı ise tarayıcınızda kapsayıcının FQDN'sine gidin. Aşağıdakine benzer bir web sayfası görüyorsanız kendinizi tebrik edebilirsiniz! Docker kapsayıcısında çalışan bir uygulamayı Azure'a başarıyla dağıttınız.

Azure Container Instances'a dağıtılan bir uygulamayı tarayıcıda görüntüleme

İlk başta uygulama görüntülenmiyorsa, DNS yayılırken birkaç saniye beklemeniz ve ardından tarayıcınızı yenilemeyi denemeniz gerekebilir.

Kapsayıcı günlüklerini çek

Kapsayıcıdaki veya üzerinde çalışan uygulamalardaki sorunları gidermek (veya yalnızca çıkışını görmek) istediğinizde kapsayıcı örneğinin günlüklerinden başlayın.

az container logs komutuyla kapsayıcı örneği günlüklerini çekin:

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

Çıktı kapsayıcının günlüklerini görüntüler ve uygulamayı tarayıcınızda görüntülediğinizde oluşturulan HTTP GET isteklerini göstermelidir.

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"

Çıkış akışlarını bağla

Günlükleri görüntülemeye ek olarak, yerel standart çıkış ve standart hata akışlarınızı kapsayıcıya ekleyebilirsiniz.

İlk olarak, az container attach komutunu yürüterek yerel konsolunuzu kapsayıcının çıkış akışlarına bağlayın.

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

Eklendikten sonra, daha fazla çıkış oluşturmak için tarayıcınızı birkaç kez yenileyin. İşlemi tamamladığınızda Control+C ile konsolunuzu ayırın. Aşağıdaki örneğe benzer bir çıktı görmeniz gerekir:

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"

Kaynakları temizleme

Kapsayıcıyla işiniz bittiğinde az container delete komutunu kullanarak kapsayıcıyı kaldırın:

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

Kapsayıcının silindiğini doğrulamak için az container list komutunu yürütür:

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

mycontainer kapsayıcısı komutun çıkışında görünmemelidir. Kaynak grubunda başka kapsayıcınız yoksa, çıkış görüntülenmez.

myResourceGroup kaynak grubuyla ve içerdiği tüm kaynaklarla işiniz bittiyse az group delete komutuyla silin:

az group delete --name myResourceGroup

Sonraki adımlar

Bu hızlı başlangıçta, genel bir Microsoft görüntüsü kullanarak 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.

Azure'da bir orkestrasyon sisteminde kapsayıcı çalıştırma seçeneklerini denemek için bkz. Azure Kubernetes Service (AKS) hızlı başlangıç kılavuzları.