Hızlı Başlangıç: Azure Container Registry Görevleri kullanarak kapsayıcı görüntüsü Azure Container Registry Görevleri

Bu hızlı başlangıçta, Azure Container Registry Görevleri Docker yüklemesi olmadan Azure'da yerel olarak bir Docker kapsayıcı görüntüsü derlemek, itmek ve çalıştırmak için Azure Container Registry Görevleri komutlarını kullanırsınız. ACR Görevleri, kapsayıcı yaşam döngüsü boyunca Azure Container Registry ve değiştirmenize yardımcı olacak bir özellik paketidir. Bu örnekte, yerel bir Dockerfile kullanarak isteğe bağlı derlemelerle "iç döngü" kapsayıcı görüntüsü geliştirme döngüs boşaltmayı gösterir.

Bu hızlı başlangıçtan sonra, öğreticilerini kullanarak ACR Görevleri gelişmiş özelliklerini keşfedin. ACR Görevleri işlemeleri veya temel görüntü güncelleştirmelerini temel alarak görüntü derlemelerini otomatik hale veya farklı senaryolara paralel olarak birden çok kapsayıcıyı test etme.

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Önkoşullar

  • Azure Cloud Shell'Da Bash ortamını kullanın.

    Cloud Shell’i yeni bir pencerede başlatma

  • Dilerseniz CLI başvuru komutlarını çalıştırmak için Azure CLI’yi yükleyebilirsiniz.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Ek oturum açma seçenekleri için bkz. Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantılarını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

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

Kaynak grubu oluşturma

Henüz bir kapsayıcı kayıt defteri yoksa önce az group create komutuyla bir kaynak grubu oluşturun. Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır.

Aşağıdaki örnek eastus konumunda myResourceGroup adlı bir kaynak grubu oluşturur.

az group create --name myResourceGroup --location eastus

Kapsayıcı kayıt defteri oluşturma

az acr create komutunu kullanarak bir kapsayıcı kayıt defteri oluşturun. Kaynak defteri adı Azure’da benzersiz olmalı ve 5-50 arası alfasayısal karakter içermelidir. Aşağıdaki örnekte myContainerRegistry008 kullanılmıştır. Bunu benzersiz bir değerle güncelleştirin.

az acr create --resource-group myResourceGroup \
  --name myContainerRegistry008 --sku Basic

Bu örnek, geliştiriciler için maliyet için iyileştirilmiş bir seçenek olan temel kayıt defteri Azure Container Registry. Kullanılabilir hizmet katmanları hakkında ayrıntılı bilgi için bkz. Kapsayıcı kayıt defteri hizmet katmanları.

Dockerfile'dan görüntü oluşturma ve itme

Şimdi Azure Container Registry oluşturmak ve itmek için kullanın. İlk olarak yerel bir çalışma dizini oluşturun ve ardından tek satırlı Dockerfile adlı bir Dockerfile oluşturun: FROM mcr.microsoft.com/hello-world . Bu, Microsoft Container Registry'de barındırılan görüntüden Linux hello-world kapsayıcı görüntüsü oluşturmanın basit bir Microsoft Container Registry. Kendi standart Dockerfile dosyanızı oluşturabilir ve diğer platformlar için görüntüler oluşturabilirsiniz. Bash kabuğunda çalışıyorsanız aşağıdaki komutla Dockerfile dosyasını oluşturun:

echo FROM mcr.microsoft.com/hello-world > Dockerfile

Görüntüyü derlemek için az acr build komutunu çalıştırın ve görüntü başarıyla oluşturulduktan sonra kayıt defterinize iletir. Aşağıdaki örnek görüntüyü derleme ve sample/hello-world:v1 itme. .Komutun sonundaki değeri Dockerfile dosyasının konumunu (bu durumda geçerli dizin) ayarlar.

az acr build --image sample/hello-world:v1 \
  --registry myContainerRegistry008 \
  --file Dockerfile . 

Başarılı bir derleme ve itme çıktısı aşağıdakine benzer:

Packing source code into tar to upload...
Uploading archived source code from '/tmp/build_archive_b0bc1e5d361b44f0833xxxx41b78c24e.tar.gz'...
Sending context (1.856 KiB) to registry: mycontainerregistry008...
Queued a build with ID: ca8
Waiting for agent...
2019/03/18 21:56:57 Using acb_vol_4c7ffa31-c862-4be3-xxxx-ab8e615c55c4 as the home volume
2019/03/18 21:56:57 Setting up Docker configuration...
2019/03/18 21:56:58 Successfully set up Docker configuration
2019/03/18 21:56:58 Logging in to registry: mycontainerregistry008.azurecr.io
2019/03/18 21:56:59 Successfully logged into mycontainerregistry008.azurecr.io
2019/03/18 21:56:59 Executing step ID: build. Working directory: '', Network: ''
2019/03/18 21:56:59 Obtaining source code and scanning for dependencies...
2019/03/18 21:57:00 Successfully obtained source code and scanned for dependencies
2019/03/18 21:57:00 Launching container with name: build
Sending build context to Docker daemon  13.82kB
Step 1/1 : FROM mcr.microsoft.com/hello-world
latest: Pulling from hello-world
Digest: sha256:2557e3c07ed1e38f26e389462d03ed943586fxxxx21577a99efb77324b0fe535
Successfully built fce289e99eb9
Successfully tagged mycontainerregistry008.azurecr.io/sample/hello-world:v1
2019/03/18 21:57:01 Successfully executed container: build
2019/03/18 21:57:01 Executing step ID: push. Working directory: '', Network: ''
2019/03/18 21:57:01 Pushing image: mycontainerregistry008.azurecr.io/sample/hello-world:v1, attempt 1
The push refers to repository [mycontainerregistry008.azurecr.io/sample/hello-world]
af0b15c8625b: Preparing
af0b15c8625b: Layer already exists
v1: digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a size: 524
2019/03/18 21:57:03 Successfully pushed image: mycontainerregistry008.azurecr.io/sample/hello-world:v1
2019/03/18 21:57:03 Step ID: build marked as successful (elapsed time in seconds: 2.543040)
2019/03/18 21:57:03 Populating digests for step ID: build...
2019/03/18 21:57:05 Successfully populated digests for step ID: build
2019/03/18 21:57:05 Step ID: push marked as successful (elapsed time in seconds: 1.473581)
2019/03/18 21:57:05 The following dependencies were found:
2019/03/18 21:57:05
- image:
    registry: mycontainerregistry008.azurecr.io
    repository: sample/hello-world
    tag: v1
    digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a
  runtime-dependency:
    registry: registry.hub.docker.com
    repository: library/hello-world
    tag: v1
    digest: sha256:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535
  git: {}

Run ID: ca8 was successful after 10s

Görüntüyü çalıştırma

Şimdi, hızlı bir şekilde, yerleşik ve kayıt defterinize itilmiş olan görüntüyü çalıştırın. Burada az acr run komutunu kullanarak container komutunu çalıştırabilirsiniz. Kapsayıcı geliştirme iş akışınıza bu, görüntüyü dağıtmadan önce bir doğrulama adımı olabilir veya komutunu çok adımlı bir YAML dosyasına dahil edebilirsiniz.

Aşağıdaki örnek, $Registry komutunu çalıştırarak kayıt defterini belirtmek için kullanır:

az acr run --registry myContainerRegistry008 \
  --cmd '$Registry/sample/hello-world:v1' /dev/null

Bu cmd örnekteki parametresi kapsayıcıyı varsayılan yapılandırmasında çalıştırır, ancak cmd ek parametreleri ve hatta diğer komutları docker run docker destekler.

Çıktı aşağıdakine benzer:

Packing source code into tar to upload...
Uploading archived source code from '/tmp/run_archive_ebf74da7fcb04683867b129e2ccad5e1.tar.gz'...
Sending context (1.855 KiB) to registry: mycontainerre...
Queued a run with ID: cab
Waiting for an agent...
2019/03/19 19:01:53 Using acb_vol_60e9a538-b466-475f-9565-80c5b93eaa15 as the home volume
2019/03/19 19:01:53 Creating Docker network: acb_default_network, driver: 'bridge'
2019/03/19 19:01:53 Successfully set up Docker network: acb_default_network
2019/03/19 19:01:53 Setting up Docker configuration...
2019/03/19 19:01:54 Successfully set up Docker configuration
2019/03/19 19:01:54 Logging in to registry: mycontainerregistry008.azurecr.io
2019/03/19 19:01:55 Successfully logged into mycontainerregistry008.azurecr.io
2019/03/19 19:01:55 Executing step ID: acb_step_0. Working directory: '', Network: 'acb_default_network'
2019/03/19 19:01:55 Launching container with name: acb_step_0

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

2019/03/19 19:01:56 Successfully executed container: acb_step_0
2019/03/19 19:01:56 Step ID: acb_step_0 marked as successful (elapsed time in seconds: 0.843801)

Run ID: cab was successful after 6s

Kaynakları temizleme

Artık gerekli değilken az group delete komutunu kullanarak kaynak grubunu, kapsayıcı kayıt defterini ve orada depolanan kapsayıcı görüntülerini kaldırabilirsiniz.

az group delete --name myResourceGroup

Sonraki adımlar

Bu hızlı başlangıçta, yerel bir Docker yüklemesi ACR Görevleri Azure'da docker kapsayıcı görüntüsünü hızla derlemek, itmek ve çalıştırmak için ACR Görevleri'nin özelliklerini kullandınız. Görüntü derlemelerini ve Azure Container Registry Görevleri otomatikleştirmek için ACR Görevleri hakkında bilgi edinmek için ACR Görevleri öğreticilerine devam edin.