Öğretici: Bir Azure container Registry'yi dağıtma ve kapsayıcı görüntüsü göndermeTutorial: Deploy an Azure container registry and push a container image

Bu öğretici, üç bölümden oluşan bir serinin ikinci bölümüdür.This is part two of a three-part tutorial. Öğreticinin birinci bölümünde, Node.js web uygulaması için bir Docker kapsayıcı görüntüsü oluşturuldu.Part one of the tutorial created a Docker container image for a Node.js web application. Bu öğreticide, görüntüyü Azure Container Registry’ye göndereceksiniz.In this tutorial, you push the image to Azure Container Registry. Henüz kapsayıcı görüntüsünü oluşturmadıysanız Öğretici 1 - Kapsayıcı görüntüsü oluşturma bölümüne geri dönün.If you haven't yet created the container image, return to Tutorial 1 – Create container image.

Azure Container Registry sizin Azure’daki özel Docker kayıt defterinizdir.Azure Container Registry is your private Docker registry in Azure. Bu öğreticide, aboneliğinizde bir Azure Container Registry örneği oluşturur ve sonra buna önceden oluşturduğunuz kapsayıcı resmini gönderirsiniz.In this tutorial, you create an Azure Container Registry instance in your subscription, then push the previously created container image to it. Serinin ikinci bölümündeki bu makalede şunları yapacaksınız:In this article, part two of the series, you:

  • Azure Container Registry örneği oluşturacaksınızCreate an Azure Container Registry instance
  • Azure kapsayıcı kayıt defteriniz için bir kapsayıcı görüntüsü etiketleyeceksinizTag a container image for your Azure container registry
  • Görüntüyü kayıt defterinize yükleyeceksinizUpload the image to your registry

Serinin son öğreticisi olan sonraki makalede, özel kayıt defterinizdeki kapsayıcıyı Azure Container Instances’a dağıtacaksınız.In the next article, the last in the series, you deploy the container from your private registry to Azure Container Instances.

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 kapsayıcı kayıt defteri oluşturmaCreate Azure container registry

Kapsayıcı kayıt defterinizi oluşturmadan önce bunun dağıtılacağı bir kaynak grubu gerekir.Before you create your container registry, you need a resource group to deploy it to. Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal koleksiyondur.A resource group is a logical collection into which all Azure resources are deployed and managed.

az group create komutuyla bir kaynak grubu oluşturun.Create a resource group with the az group create command. Aşağıdaki örnekte, eastus bölgesinde myResourceGroup adlı bir kaynak grubu oluşturulur:In the following example, a resource group named myResourceGroup is created in the eastus region:

az group create --name myResourceGroup --location eastus

Kaynak grubunu oluşturduktan sonra az acr create komutuyla bir Azure kapsayıcı kayıt defteri oluşturun.Once you've created the resource group, create an Azure container registry with the az acr create command. Kapsayıcı kayıt defteri adı Azure’da benzersiz olmalı ve 5-50 arası alfasayısal karakter içermelidir.The container registry name must be unique within Azure, and contain 5-50 alphanumeric characters. <acrName> değerini kayıt defteriniz için benzersiz bir adla değiştirin:Replace <acrName> with a unique name for your registry:

az acr create --resource-group myResourceGroup --name <acrName> --sku Basic --admin-enabled true

Aşağıda, mycontainerregistry082 adlı yeni bir Azure kapsayıcı kayıt defteri için çıktı örneği yer almaktadır (burada kısaltılmış şekilde gösterilmektedir):Here's example output for a new Azure container registry named mycontainerregistry082 (shown here truncated):

$ az acr create --resource-group myResourceGroup --name mycontainerregistry082 --sku Basic --admin-enabled true
...
{
  "adminUserEnabled": true,
  "creationDate": "2018-03-16T21:54:47.297875+00:00",
  "id": "/subscriptions/<Subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/mycontainerregistry082",
  "location": "eastus",
  "loginServer": "mycontainerregistry082.azurecr.io",
  "name": "mycontainerregistry082",
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "sku": {
    "name": "Basic",
    "tier": "Basic"
  },
  "status": null,
  "storageAccount": null,
  "tags": {},
  "type": "Microsoft.ContainerRegistry/registries"
}

Bu öğreticinin geri kalan aşamalarında, bu adımda seçtiğiniz kapsayıcı kayıt defteri adı için yer tutucu olarak <acrName> kullanılmaktadır.The rest of the tutorial refers to <acrName> as a placeholder for the container registry name that you chose in this step.

Kapsayıcı kayıt defterinde oturum açmaLog in to container registry

Görüntü göndermeden önce, Azure Container Registry örneğinizde oturum açmanız gerekir.You must log in to your Azure Container Registry instance before pushing images to it. İşlemi tamamlamak için az acr login komutunu kullanın.Use the az acr login command to complete the operation. Oluşturduğunuzda, kapsayıcı kayıt defteri için seçtiğiniz benzersiz adı sağlamanız gerekir.You must provide the unique name you chose for the container registry when you created it.

az acr login --name <acrName>

Komut tamamlandığında Login Succeeded döndürülür:The command returns Login Succeeded once completed:

$ az acr login --name mycontainerregistry082
Login Succeeded

Kapsayıcı görüntüsünü etiketlemeTag container image

Azure Container Registry gibi bir özel kayıt defterine kapsayıcı görüntüsü göndermek için önce görüntüyü kayıt defterinin oturum açma sunucusunun tam adıyla etiketlemeniz gerekir.To push a container image to a private registry like Azure Container Registry, you must first tag the image with the full name of the registry's login server.

İlk olarak Azure kapsayıcı kayıt defteriniz için tam oturum açma sunucu adını alın.First, get the full login server name for your Azure container registry. Aşağıdaki az acr show komutunu çalıştırın ve <acrName> değerini, yeni oluşturduğunuz kayıt defterinin adıyla değiştirin:Run the following az acr show command, and replace <acrName> with the name of registry you just created:

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

Örneğin, kayıt defterinizin adı mycontainerregistry082 ise:For example, if your registry is named mycontainerregistry082:

$ az acr show --name mycontainerregistry082 --query loginServer --output table
Result
------------------------
mycontainerregistry082.azurecr.io

Şimdi docker images komutunu kullanarak yerel görüntülerinizin listesini görüntüleyin:Now, display the list of your local images with the docker images command:

docker images

Makinenizdeki diğer görüntülerle birlikte, önceki öğreticide derlediğiniz aci-tutorial-app görüntüsünü görmeniz gerekir:Along with any other images you have on your machine, you should see the aci-tutorial-app image you built in the previous tutorial:

$ docker images
REPOSITORY          TAG       IMAGE ID        CREATED           SIZE
aci-tutorial-app    latest    5c745774dfa9    39 minutes ago    68.1 MB

Kapsayıcı kayıt defterinizin loginServer’ı için aci-tutorial-app görüntüsünü etiketleyin.Tag the aci-tutorial-app image with the loginServer of your container registry. Ayrıca görüntü sürüm numarasını belirtmek için görüntü adının sonuna :v1 etiketini ekleyin.Also, add the :v1 tag to the end of the image name to indicate the image version number. <acrLoginServer> değerini, az önce çalıştırdığınız az acr show komutunun sonucuyla değiştirin.Replace <acrLoginServer> with the result of the az acr show command you executed earlier.

docker tag aci-tutorial-app <acrLoginServer>/aci-tutorial-app:v1

Etiketleme işlemini doğrulamak için tekrar docker images komutunu çalıştırın:Run docker images again to verify the tagging operation:

$ docker images
REPOSITORY                                            TAG       IMAGE ID        CREATED           SIZE
aci-tutorial-app                                      latest    5c745774dfa9    39 minutes ago    68.1 MB
mycontainerregistry082.azurecr.io/aci-tutorial-app    v1        5c745774dfa9    7 minutes ago     68.1 MB

Azure Container Registry’ye görüntü göndermePush image to Azure Container Registry

aci-tutorial-app görüntüsünü, özel kayıt defterinizin tam oturum açma sunucusu adıyla etiketlediğinize göre şimdi docker push komutunu kullanarak bunu kayıt defterine gönderebilirsiniz.Now that you've tagged the aci-tutorial-app image with the full login server name of your private registry, you can push it to the registry with the docker push command. <acrLoginServer> değerini, önceki adımda aldığınız tam oturum açma sunucusu adıyla değiştirin.Replace <acrLoginServer> with the full login server name you obtained in the earlier step.

docker push <acrLoginServer>/aci-tutorial-app:v1

push işlemi, internet bağlantınıza bağlı olarak birkaç saniye ile birkaç dakika arasında sürebilir ve çıktı şuna benzer:The push operation should take a few seconds to a few minutes depending on your internet connection, and output is similar to the following:

$ docker push mycontainerregistry082.azurecr.io/aci-tutorial-app:v1
The push refers to a repository [mycontainerregistry082.azurecr.io/aci-tutorial-app]
3db9cac20d49: Pushed
13f653351004: Pushed
4cd158165f4d: Pushed
d8fbd47558a8: Pushed
44ab46125c35: Pushed
5bef08742407: Pushed
v1: digest: sha256:ed67fff971da47175856505585dcd92d1270c3b37543e8afd46014d328f05715 size: 1576

Azure Container Registry’deki görüntüleri listelemeList images in Azure Container Registry

Gönderdiğiniz görüntünün aslında Azure kapsayıcı kayıt defterinizde olduğunu doğrulamak için, az acr repository list komutunu kullanarak kayıt defterinizdeki görüntüleri listeleyin.To verify that the image you just pushed is indeed in your Azure container registry, list the images in your registry with the az acr repository list command. <acrName> komutunu, kapsayıcı kayıt defterinizin adıyla değiştirin.Replace <acrName> with the name of your container registry.

az acr repository list --name <acrName> --output table

Örneğin:For example:

$ az acr repository list --name mycontainerregistry082 --output table
Result
----------------
aci-tutorial-app

Belirli bir görüntünün etiketlerini görmek için, az acr repository show-tags komutunu kullanın.To see the tags for a specific image, use the az acr repository show-tags command.

az acr repository show-tags --name <acrName> --repository aci-tutorial-app --output table

Aşağıdakine benzer bir çıktı görmeniz gerekir:You should see output similar to the following:

$ az acr repository show-tags --name mycontainerregistry082 --repository aci-tutorial-app --output table
Result
--------
v1

Sonraki adımlarNext steps

Bu öğreticide, Azure Container Instances ile kullanım için bir Azure kapsayıcı kayıt defteri hazırladınız ve bu kayıt defterine bir kapsayıcı görüntüsü gönderdiniz.In this tutorial, you prepared an Azure container registry for use with Azure Container Instances, and pushed a container image to the registry. Aşağıdaki adımlar tamamlandı:The following steps were completed:

  • Azure Container Registry örneği dağıtıldıDeployed an Azure Container Registry instance
  • Azure Container Registry için bir kapsayıcı görüntüsü etiketlendiTagged a container image for Azure Container Registry
  • Azure Container Registry’ye görüntü yüklendiUploaded an image to Azure Container Registry

Azure Container Instances kullanarak Azure’a kapsayıcıyı dağıtma hakkında bilgi edinmek için sonraki öğreticiye geçin:Advance to the next tutorial to learn how to deploy the container to Azure using Azure Container Instances: