Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu hızlı başlangıçta Azure Container Registry Tasks komutlarını kullanarak yerel docker yüklemesi olmadan Azure'da yerel olarak bir Docker kapsayıcı görüntüsü oluşturacak, gönderecek ve çalıştıracaksınız. ACR Görevleri, kapsayıcı yaşam döngüsü boyunca kapsayıcı görüntülerini yönetmenize ve değiştirmenize yardımcı olmak için Azure Container Registry içindeki 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ünüzü buluta nasıl aktarabileceğiniz gösterilmektedir.
Bu hızlı başlangıcı tamamladıktan sonra öğreticileri kullanarak ACR Görevlerinin daha gelişmiş özelliklerini keşfedin. ACR Görevleri, kod işlemelerini veya temel görüntü güncelleştirmelerini temel alan görüntü derlemelerini otomatikleştirebilir veya diğer senaryoların yanı sıra birden çok kapsayıcıyı paralel olarak test edebilir.
Azure hesabınız yoksa, başlamadan önce ücretsiz hesap oluşturun.
Önkoşullar
Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz. Azure Cloud Shell'i kullanmaya başlama.
CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.
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. Diğer oturum açma seçenekleri için bkz. Azure CLI kullanarak Azure'da kimlik doğrulaması.
İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma ve yönetme.
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.
Kaynak grubu oluşturma
Henüz bir kapsayıcı kayıt defteriniz yoksa, önce az group create komutuyla bir kaynak grubu oluşturun . Azure kaynak grubu, Azure kaynaklarını dağıtıp yönettiğiniz mantıksal bir 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şturun
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. Bu değeri benzersiz bir değerle güncelleştirin.
az acr create --resource-group myResourceGroup \
--name mycontainerregistry008 --sku Basic
Bu örnek, Azure Container Registry hakkında bilgi edinen geliştiriciler için maliyet açısından iyileştirilmiş bir seçenek olan Temel kayıt defteri oluşturur. Kullanılabilir hizmet katmanları hakkında ayrıntılı bilgi için bkz. Azure Container Registry SKU özellikleri ve sınırları.
Dockerfile'dan görüntü oluşturma ve gönderme
Şimdi bir görüntü oluşturmak ve göndermek için Azure Container Registry'yi kullanın. İlk olarak, yerel bir çalışma dizini oluşturun. Ardından tek satırlı Dockerfile adlı bir Dockerfile oluşturun: FROM mcr.microsoft.com/hello-world. Bu satır, Microsoft Container Registry'de barındırılan hello-world görüntüden linux kapsayıcı görüntüsü oluşturan basit bir örnektir. Kendi standart Dockerfile'ınızı oluşturabilir ve diğer platformlar için görüntüler oluşturabilirsiniz. Bash kabuğunda çalışıyorsanız, aşağıdaki komutu kullanarak Dockerfile dosyasını oluşturun:
echo "FROM mcr.microsoft.com/hello-world" > Dockerfile
az acr build komutunu çalıştırın. Görüntüyü oluşturur ve görüntü başarıyla oluşturulduktan sonra kayıt defterinize gönderir. Aşağıdaki örnek, sample/hello-world:v1 görüntüsünü derleyip göndermektedir.
. komutun sonundaki Dockerfile konumunu belirtir, bu durumda geçerli dizin.
az acr build --image sample/hello-world:v1 \
--registry mycontainerregistry008 \
--file Dockerfile .
Uyarı
ABAC özellikli bir kaynak kayıt defteri kullanıyorsanız, çağıranın kimliğini, kayıt defteriyle kimlik doğrulaması yaparken kullanılan kimlik olarak iletmeniz gerekir.
Daha fazla bilgi için bkz. ABAC'yi etkinleştirmenin ACR Görevleri, Hızlı Görevler, Hızlı Derlemeler ve Hızlı Çalıştırmalar üzerindeki etkileri.
Başarılı bir derleme ve gönderim çı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...
2023/03/18 21:56:57 Using acb_vol_4c7ffa31-c862-4be3-xxxx-ab8e615c55c4 as the home volume
2023/03/18 21:56:57 Setting up Docker configuration...
2023/03/18 21:56:58 Successfully set up Docker configuration
2023/03/18 21:56:58 Logging in to registry: mycontainerregistry008.azurecr.io
2023/03/18 21:56:59 Successfully logged into mycontainerregistry008.azurecr.io
2023/03/18 21:56:59 Executing step ID: build. Working directory: '', Network: ''
2023/03/18 21:56:59 Obtaining source code and scanning for dependencies...
2023/03/18 21:57:00 Successfully obtained source code and scanned for dependencies
2023/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
2023/03/18 21:57:01 Successfully executed container: build
2023/03/18 21:57:01 Executing step ID: push. Working directory: '', Network: ''
2023/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
2023/03/18 21:57:03 Successfully pushed image: mycontainerregistry008.azurecr.io/sample/hello-world:v1
2023/03/18 21:57:03 Step ID: build marked as successful (elapsed time in seconds: 2.543040)
2023/03/18 21:57:03 Populating digests for step ID: build...
2023/03/18 21:57:05 Successfully populated digests for step ID: build
2023/03/18 21:57:05 Step ID: push marked as successful (elapsed time in seconds: 1.473581)
2023/03/18 21:57:05 The following dependencies were found:
2023/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 oluşturduğunuz ve kayıt defterinize ilettiğiniz görüntüyü çalıştırın. kapsayıcı komutunu çalıştırmak için az acr run komutunu kullanın. Kapsayıcı geliştirme iş akışınızda bu adım, görüntüyü dağıtmadan önce bir doğrulama adımı olabilir veya komutu çok adımlı bir YAML dosyasına ekleyebilirsiniz.
Aşağıdaki örnek, komutunu çalıştırdığınız kayıt defterinin uç noktasını belirtmek için kullanır $Registry :
az acr run --registry mycontainerregistry008 \
--cmd '$Registry/sample/hello-world:v1' /dev/null
Uyarı
ABAC özellikli bir kaynak kayıt defteri kullanıyorsanız, çağıranın kimliğini komutun kayıt defteriyle kimlik doğrulaması için kullandığı kimlik run olarak geçirmeniz gerekir.
az acr run komutunu çalıştırırken --source-acr-auth-id [caller] bayrağını kullanarak kimliği geçirin.
Daha fazla bilgi için bkz. ABAC'yi etkinleştirmenin ACR Görevleri, Hızlı Görevler, Hızlı Derlemeler ve Hızlı Çalıştırmalar üzerindeki etkileri.
cmd Bu örnekteki parametre kapsayıcıyı varsayılan yapılandırmasında çalıştırır, ancak cmd ek docker run parametreleri ve hatta diğer docker komutları 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...
2023/03/19 19:01:53 Using acb_vol_60e9a538-b466-475f-9565-80c5b93eaa15 as the home volume
2023/03/19 19:01:53 Creating Docker network: acb_default_network, driver: 'bridge'
2023/03/19 19:01:53 Successfully set up Docker network: acb_default_network
2023/03/19 19:01:53 Setting up Docker configuration...
2023/03/19 19:01:54 Successfully set up Docker configuration
2023/03/19 19:01:54 Logging in to registry: mycontainerregistry008.azurecr.io
2023/03/19 19:01:55 Successfully logged into mycontainerregistry008.azurecr.io
2023/03/19 19:01:55 Executing step ID: acb_step_0. Working directory: '', Network: 'acb_default_network'
2023/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/
2023/03/19 19:01:56 Successfully executed container: acb_step_0
2023/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
Kaynaklara artık ihtiyacınız kalmadığında az group delete komutunu kullanarak kaynak grubunu, kapsayıcı kayıt defterini ve kayıt defterinde depolanan kapsayıcı görüntülerini kaldırın.
az group delete --name myResourceGroup
Sonraki adımlar
Bu hızlı başlangıçta ACR Görevleri'nin özelliklerini kullanarak yerel docker yüklemesi olmadan Azure'da yerel olarak bir Docker kapsayıcı görüntüsü oluşturup, göndererek ve çalıştırabilirsiniz. Görüntü derlemelerini ve güncelleştirmelerini otomatikleştirmek için ACR Görevlerini kullanma hakkında bilgi edinmek için bkz. Azure Container Registry Görevleri öğreticileri.