Öğretici: Bir Azure Container ınstances'a kapsayıcı uygulaması dağıtmaTutorial: Deploy a container application to Azure Container Instances

Bu, üç kısımdan oluşan serinin son öğreticisidir.This is the final tutorial in a three-part series. Serinin önceki kısımlarında bir kapsayıcı görüntüsü oluşturuldu ve Azure Container Registry’ye gönderildi.Earlier in the series, a container image was created and pushed to Azure Container Registry. Bu makalede, Azure Container Instances’a kapsayıcı dağıtılarak seri tamamlanır.This article completes the series by deploying the container to Azure Container Instances.

Bu öğreticide şunları yaptınız:In this tutorial, you:

  • Azure Container Registry’den Azure Container Instances’a kapsayıcıyı dağıtmaDeploy the container from Azure Container Registry to Azure Container Instances
  • Tarayıcıda çalıştırılan uygulamayı görüntülemeView the running application in the browser
  • Kapsayıcının günlüklerini görüntülemeDisplay the container's logs

Başlamadan önceBefore you begin

Bu öğreticiyi tamamlamak için aşağıdaki gereksinimleri karşılamanız gerekir:You must satisfy the following requirements to complete this tutorial:

Azure CLI: Daha sonra yerel bilgisayarınızda yüklü veya Azure CLI 2.0.29 sürüm olmalıdır.Azure CLI: You must have Azure CLI version 2.0.29 or later installed on your local computer. Sürümü bulmak için az --version komutunu çalıştırın.Run az --version to find the version. Yükleme veya yükseltme yapmanız gerekirse bkz. Azure CLI'yı yükleme.If you need to install or upgrade, see Install the Azure CLI.

Docker: Bu öğreticide çekirdek temel bir anlayış gibi kapsayıcılar, kapsayıcı görüntüleri ve temel Docker kavramları varsayılır docker komutları.Docker: This tutorial assumes a basic understanding of core Docker concepts like containers, container images, and basic docker commands. Docker ve kapsayıcı temel bilgileri ile ilgili giriş yapmak için Docker’a genel bakış bölümüne bakın.For a primer on Docker and container basics, see the Docker overview.

Docker altyapısı: Bu öğreticiyi tamamlamak için Docker altyapısının'ın yerel olarak yüklü olması gerekir.Docker Engine: To complete this tutorial, you need Docker Engine installed locally. Docker, macOS, Windows ve Linux üzerinde Docker ortamını yapılandıran paketler sağlar.Docker provides packages that configure the Docker environment on macOS, Windows, and Linux.

Önemli

Azure Cloud shell, Docker programını içermediğinden bu öğreticiyi tamamlamak için yerel bilgisayarınıza hem Azure CLI’yi hem de Docker Altyapısı’nı yüklemeniz gerekir.Because the Azure Cloud shell does not include the Docker daemon, you must install both the Azure CLI and Docker Engine on your local computer to complete this tutorial. Bu öğretici için Azure Cloud Shell kullanamazsınız.You cannot use the Azure Cloud Shell for this tutorial.

Azure CLI’yi kullanarak kapsayıcıyı dağıtmaDeploy the container using the Azure CLI

Bu bölümde, birinci öğreticide derlenen ve ikinci öğreticide Azure Container Registry’ye gönderilen görüntüyü dağıtmak için Azure CLI’yi kullanırsınız.In this section, you use the Azure CLI to deploy the image built in the first tutorial and pushed to Azure Container Registry in the second tutorial. Devam etmeden önce bu öğreticileri tamamladığınızdan emin olun.Be sure you've completed those tutorials before proceeding.

Kayıt defteri kimlik bilgilerini almaGet registry credentials

Bir özel kapsayıcı kayıt defterinde oluşturulana benzer barındırılan bir görüntüyü dağıtırken ikinci öğreticide, kayıt defterine erişim için kimlik bilgilerini sağlamanız gerekir.When you deploy an image that's hosted in a private container registry like the one created in the second tutorial, you must supply credentials to access the registry. Gösterildiği Azure Container Registry'den Azure Container Instances ile kimlik doğrulama, birçok senaryo için en iyi uygulama oluşturma ve bir Azure Active Directory Hizmet sorumlusu ile yapılandırmaktır çekmekayıt izinleri.As shown in Authenticate with Azure Container Registry from Azure Container Instances, a best practice for many scenarios is to create and configure an Azure Active Directory service principal with pull permissions to your registry. Bu makalede gerekli izinlere sahip bir hizmet sorumlusu oluşturmak için örnek betikler için bkz.See that article for sample scripts to create a service principal with the necessary permissions. Hizmet sorumlusu kimliği ve hizmet sorumlusu parolası not alın.Take note of the service principal ID and service principal password. Kapsayıcının dağıtımını gerçekleştirdiğinizde bu kimlik bilgilerini kullanın.You use these credentials when you deploy the container.

Ayrıca kapsayıcı kayıt defteri oturum açma sunucusunun tam adı gerekir (Değiştir <acrName> kayıt defterinizin adıyla):You also need the full name of the container registry login server (replace <acrName> with the name of your registry):

az acr show --name <acrName> --query loginServer

Kapsayıcıyı dağıtmaDeploy container

Şimdi kapsayıcıyı dağıtmak için az container create komutunu kullanın.Now, use the az container create command to deploy the container. Değiştirin <acrLoginServer> önceki komutta aldığınız değerine sahip.Replace <acrLoginServer> with the value you obtained from the previous command. Değiştirin <service-principal-ID> ve <service-principal-password> hizmet sorumlusu kimliği ve kayıt defterine erişim için oluşturduğunuz parola ile.Replace <service-principal-ID> and <service-principal-password> with the service principal ID and password that you created to access the registry. Değiştirin <aciDnsLabel> istenen bir DNS adına sahip.Replace <aciDnsLabel> with a desired DNS name.

az container create --resource-group myResourceGroup --name aci-tutorial-app --image <acrLoginServer>/aci-tutorial-app:v1 --cpu 1 --memory 1 --registry-login-server <acrLoginServer> --registry-username <service-principal-ID> --registry-password <service-principal-password> --dns-name-label <aciDnsLabel> --ports 80

Birkaç saniye içinde Azure’dan bir ilk yanıt almanız gerekir.Within a few seconds, you should receive an initial response from Azure. --dns-name-label değeri, kapsayıcı örneğini oluşturduğunuz Azure bölgesi içinde benzersiz olmalıdır.The --dns-name-label value must be unique within the Azure region you create the container instance. Komutu yürütürken bir DNS ad etiketi hata iletisi alırsanız önceki komutta yer alan değeri değiştirin.Modify the value in the preceding command if you receive a DNS name label error message when you execute the command.

Dağıtım ilerleme durumunu doğrulamaVerify deployment progress

Dağıtımın durumunu görüntülemek için az container show komutunu kullanın:To view the state of the deployment, use az container show:

az container show --resource-group myResourceGroup --name aci-tutorial-app --query instanceView.state

Beklemede olan durum Çalışıyor olarak değişinceye kadar az container show komutunu yineleyin; bu bir dakikadan kısa sürecektir.Repeat the az container show command until the state changes from Pending to Running, which should take under a minute. Kapsayıcı Çalışıyor durumunda olduğunda sonraki adıma ilerleyin.When the container is Running, proceed to the next step.

Uygulama ve kapsayıcı günlüklerini görüntülemeView the application and container logs

Dağıtım başarılı olduktan sonra, az container show komutuyla kapsayıcının tam etki alanı adını görüntüleyin:Once the deployment succeeds, display the container's fully qualified domain name (FQDN) with the az container show command:

az container show --resource-group myResourceGroup --name aci-tutorial-app --query ipAddress.fqdn

Örneğin:For example:

$ az container show --resource-group myResourceGroup --name aci-tutorial-app --query ipAddress.fqdn
"aci-demo.eastus.azurecontainer.io"

Çalışan uygulamayı görmek için, sık kullandığınız tarayıcıda görüntülenen DNS adına gidin:To see the running application, navigate to the displayed DNS name in your favorite browser:

Tarayıcıdaki Merhaba Dünya uygulaması

Kapsayıcının günlük çıktısını da görüntüleyebilirsiniz:You can also view the log output of the container:

az container logs --resource-group myResourceGroup --name aci-tutorial-app

Örnek çıktı:Example output:

$ az container logs --resource-group myResourceGroup --name aci-tutorial-app
listening on port 80
::ffff:10.240.0.4 - - [21/Jul/2017:06:00:02 +0000] "GET / HTTP/1.1" 200 1663 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"
::ffff:10.240.0.4 - - [21/Jul/2017:06:00:02 +0000] "GET /favicon.ico HTTP/1.1" 404 150 "http://aci-demo.eastus.azurecontainer.io/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"

Kaynakları temizlemeClean up resources

Artık bu öğretici serisinde oluşturduğunuz kaynakların herhangi birine ihtiyacınız yoksa, kaynak grubunu ve içerdiği tüm kaynakları kaldırmak için az group delete komutunu yürütebilirsiniz.If you no longer need any of the resources you created in this tutorial series, you can execute the az group delete command to remove the resource group and all resources it contains. Bu komut, oluşturduğunuz kapsayıcı kayıt defterinin yanı sıra çalışan kapsayıcıyı ve tüm ilişkili kaynakları siler.This command deletes the container registry you created, as well as the running container, and all related resources.

az group delete --name myResourceGroup

Sonraki adımlarNext steps

Bu öğreticide, Azure Container Instances’a kapsayıcınızı dağıtma işlemini tamamladınız.In this tutorial, you completed the process of deploying your container to Azure Container Instances. Aşağıdaki adımlar tamamlandı:The following steps were completed:

  • Azure CLI kullanılarak Azure Container Registry’den kapsayıcı dağıtıldıDeployed the container from Azure Container Registry using the Azure CLI
  • Tarayıcıda uygulama görüntülendiViewed the application in the browser
  • Kapsayıcı günlükleri görüntülendiViewed the container logs

Temel bilgileri edindiğinize göre şimdi kapsayıcı gruplarının nasıl çalıştığı gibi, Azure Container Instances hakkında daha fazla bilgi edinmeye geçebilirsiniz:Now that you have the basics down, move on to learning more about Azure Container Instances, such as how container groups work: