Öğretici: Azure Container Registry oluşturma ve kapsayıcı görüntüsü gönderme

Bu öğretici, üç bölümden oluşan bir serinin ikinci bölümüdür. Öğreticinin birinci bölümünde, Node.js web uygulaması için bir Docker kapsayıcı görüntüsü oluşturuldu. Bu öğreticide, görüntüyü Azure Container Registry’ye göndereceksiniz. 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.

Azure Container Registry sizin Azure’daki özel Docker kayıt defterinizdir. Serinin ikinci kısmı olan bu öğreticide şunları yapabilirsiniz:

  • Azure CLı ile Azure Container Registry örneği oluşturma
  • Azure kapsayıcı kayıt defteriniz için bir kapsayıcı görüntüsü etiketleyeceksiniz
  • Görüntüyü kayıt defterinize yükleyeceksiniz

Serinin son öğreticisi olan sonraki makalede, özel kayıt defterinizdeki kapsayıcıyı Azure Container Instances’a dağıtacaksınız.

Başlamadan önce

Bu öğreticiyi tamamlamak için aşağıdaki gereksinimleri karşılamanız gerekir:

Azure CLI: Yerel bilgisayarınızda Azure CLI 2.0.29 veya sonraki bir sürümü yüklenmiş olmalıdır. Sürümü bulmak için az --version komutunu çalıştırın. Yükleme veya yükseltme yapmanız gerekirse bkz. Azure CLI’yı yükleme.

Docker: Bu öğreticide kapsayıcılar, kapsayıcı görüntüleri ve temel docker komutları gibi temel Docker kavramları hakkında bilgi sahibi olduğunuz varsayılmıştır. Docker ve kapsayıcı temel bilgileri ile ilgili giriş yapmak için Docker’a genel bakış bölümüne bakın.

Docker: Bu öğreticiyi tamamlayabilmeniz Için Docker 'ın yerel olarak yüklü olması gerekir. Docker, macOS, Windows ve Linux üzerinde Docker ortamını yapılandıran paketler sağlar.

Ö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. Bu öğretici için Azure Cloud Shell kullanamazsınız.

Azure kapsayıcı kayıt defteri oluşturma

Kapsayıcı kayıt defterinizi oluşturmadan önce bunun dağıtılacağı bir kaynak grubu gerekir. Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal koleksiyondur.

az group create komutuyla bir kaynak grubu oluşturun. Aşağıdaki örnekte, eastus bölgesinde myResourceGroup adlı bir kaynak grubu oluşturulur:

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. Kapsayıcı kayıt defteri adı Azure’da benzersiz olmalı ve 5-50 arası alfasayısal karakter içermelidir. <acrName> değerini kayıt defteriniz için benzersiz bir adla değiştirin:

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

Aşağıda, mycontainerregistry082 adlı yeni bir Azure Container Registry için kısmi çıktı verilmiştir:

{
  "creationDate": "2020-07-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.

Kapsayıcı kayıt defterinde oturum açma

Görüntü göndermeden önce, Azure Container Registry örneğinizde oturum açmanız gerekir. İşlemi tamamlamak için az acr login komutunu kullanın. Oluşturduğunuzda, kapsayıcı kayıt defteri için seçtiğiniz benzersiz adı sağlamanız gerekir.

az acr login --name <acrName>

Örnek:

az acr login --name mycontainerregistry082

Komut tamamlandığında Login Succeeded döndürülür:

Login Succeeded

Kapsayıcı görüntüsünü etiketleme

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.

İlk olarak Azure kapsayıcı kayıt defteriniz için tam oturum açma sunucu adını alın. 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:

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

Örneğin, kayıt defterinizin adı mycontainerregistry082 ise:

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:

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:

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

Aci-öğreticisi-App görüntüsünü kapsayıcı kayıt defterinizin oturum açma sunucusu ile etiketleyin. Ayrıca görüntü sürüm numarasını belirtmek için görüntü adının sonuna :v1 etiketini ekleyin. <acrLoginServer> değerini, az önce çalıştırdığınız az acr show komutunun sonucuyla değiştirin.

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:

$ 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önderme

Aci-öğreticisi-App görüntüsünü özel kayıt defterinizin tam oturum açma sunucusu adıyla etiketledikten sonra, Docker Push komutuyla görüntüyü kayıt defterine gönderebilirsiniz. <acrLoginServer> değerini, önceki adımda aldığınız tam oturum açma sunucusu adıyla değiştirin.

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:

$ 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 listeleme

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. <acrName> komutunu, kapsayıcı kayıt defterinizin adıyla değiştirin.

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

Örnek:

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.

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

Aşağıdakine benzer bir çıktı görmeniz gerekir:

Result
--------
v1

Sonraki adımlar

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. Aşağıdaki adımlar tamamlandı:

  • Azure CLı ile Azure Container Registry örneği oluşturma
  • Azure Container Registry için bir kapsayıcı görüntüsü etiketlendi
  • Azure Container Registry’ye görüntü yüklendi

Azure Container Instances kullanarak Azure’a kapsayıcıyı dağıtma hakkında bilgi edinmek için sonraki öğreticiye geçin: