0Pricing
Cloud & IT Cert Prep · Ders

Azure Container Registry

Docker görüntülerini özel bir Azure Container Registry'ye oluşturup gönderin, erişimi rol atamalarıyla yönetin ve görüntü oluşturmayı ACR Tasks ile otomatikleştirin.

Azure Container Registry, CoddyKit'te ücretsiz bir Cloud & IT Cert Prep dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cloud & IT Cert Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.

Azure Container Kayıt Defteri Nedir?

Azure Container Registry (ACR), açık kaynak Docker Registry 2.0 temel alınarak oluşturulmuş, yönetilen ve özel bir Docker kayıt defteri hizmetidir. Azure dağıtımlarınızda kullanılan kapsayıcı görüntülerini ve ilgili yapıtları (Helm grafikleri, OCI yapıtları) depolar ve yönetir. ACR, Azure Kubernetes Service (AKS), Azure Container Instances (ACI) ve App Service ile yerel olarak tümleşir ve kimlik bilgilerini yönetmeye gerek kalmadan sorunsuz görüntü çekilmesini sağlar.

ACR Hizmet Katmanları

ACR üç hizmet katmanı sunar. Basic, 10 GB depolama alanı ve sınırlı web kancası desteğiyle öğrenme ve düşük aktarım hızlı geliştirme için maliyet açısından optimize edilmiştir. Standard, coğrafi çoğaltma özellikleri ve artırılmış aktarım hızı ekler; çoğu üretim iş yükü için uygundur. Premium, coğrafi çoğaltma, içerik güveni, özel bağlantılar, müşteri tarafından yönetilen anahtarlar ve en yüksek bant genişliğini içerir; kurumsal güvenlik gereksinimleri için gereklidir.

# Create a Premium ACR in East US
az acr create \
  --name mycontainerregistry \
  --resource-group MyRG \
  --location eastus \
  --sku Premium

# List ACR instances in the subscription
az acr list --query '[].{name:name, sku:sku.name, loginServer:loginServer}' -o table

Görüntüleri ACR'ye Gönderme

Bir Docker görüntüsünü ACR'ye göndermek için Docker istemcisinin kimliğini doğrulayın, yerel görüntünüzü ACR oturum açma sunucusu ana bilgisayar adıyla etiketleyin ve gönderin. ACR oturum açma sunucusu URL'si <registryname>.azurecr.io biçimini izler. Kimlik doğrulama, etkileşimli kullanım için az acr login aracılığıyla Azure AD kimlik bilgilerinizi veya otomatik işlem hatları için bir ACR yönetici parolasını ya da hizmet sorumlusunu kullanır.

# Authenticate to ACR
az acr login --name mycontainerregistry

# Tag a local image for ACR
docker tag myapp:latest mycontainerregistry.azurecr.io/myapp:v1.0

# Push the image
docker push mycontainerregistry.azurecr.io/myapp:v1.0

# List images in the registry
az acr repository list --name mycontainerregistry -o table
az acr repository show-tags --name mycontainerregistry --repository myapp

ACR Tasks: Bulut Tabanlı Derlemeler

ACR Tasks, yerel bir Docker arka plan hizmeti olmadan bulutta Docker görüntüleri oluşturmanızı sağlar. Hızlı görev (az acr build), derleme bağlamınızı ACR'ye gönderir ve Dockerfile'ı uzaktan çalıştırarak doğrudan kayıt defterinde depolanan bir görüntü üretir. Zamanlanmış veya tetikleyici tabanlı görevler, temel görüntü güncellendiğinde ya da kod GitHub'a gönderildiğinde görüntünüzü otomatik olarak yeniden oluşturabilir ve ayrı bir derleme aracısı olmadan tam bir kapsayıcı sürekli tümleştirme işlem hattı sağlar.

# Quick task: build and push without local Docker
az acr build \
  --registry mycontainerregistry \
  --image myapp:v1.0 \
  . # build context (current directory with Dockerfile)

# Define a multi-step ACR Task triggered on commit
az acr task create \
  --name buildAndTest \
  --registry mycontainerregistry \
  --context https://github.com/myorg/myrepo.git \
  --file acr-task.yaml \
  --git-access-token <GITHUB_PAT>

RBAC ile Erişim Denetimi

ACR, ayrıntılı erişim denetimi için Azure RBAC ile tümleşir. Yerleşik ACR rolleri arasında AcrPull (yalnızca görüntü çekme; dağıtım hizmetleri için), AcrPush (çekme ve gönderme; sürekli tümleştirme/sürekli teslim işlem hatları için) ve AcrDelete (görüntü etiketlerini yönetme) bulunur. Kapsayıcıların herhangi bir yerde depolanan kimlik bilgileri olmadan görüntü çekebilmesi için AKS veya App Service yönetilen kimliğinize AcrPull rolünü atayın.

# Grant AKS cluster's managed identity the AcrPull role
ACR_ID=$(az acr show --name mycontainerregistry --resource-group MyRG --query id -o tsv)
AKS_IDENTITY=$(az aks show --name myAKSCluster --resource-group MyRG \
  --query identityProfile.kubeletidentity.objectId -o tsv)

az role assignment create \
  --assignee $AKS_IDENTITY \
  --role AcrPull \
  --scope $ACR_ID

Genel Dağıtımlar için Coğrafi Çoğaltma

Coğrafi çoğaltma (Premium katmanı), kayıt defterinizi birden çok Azure bölgesine çoğaltır. Bir bölgedeki AKS veya ACI bir görüntü çektiğinde uzak bir kayıt defteri yerine en yakın çoğaltmadan okur; böylece gecikme ve dışarı aktarma maliyetleri azalır. Çoğaltma saydamdır; aynı görüntü URI'si dünya genelinde çalışır ve ACR, çekme isteklerini otomatik olarak coğrafi açıdan en yakın çoğaltmaya yönlendirir.

# Add a geo-replication to West Europe
az acr replication create \
  --name westeurope \
  --registry mycontainerregistry \
  --location westeurope

# List all replicas
az acr replication list \
  --registry mycontainerregistry \
  --query '[].{name:name, location:location, status:provisioningState}' -o table

İçerik Güveni ve Görüntü İmzalama

İçerik güveni (Premium katmanı), kayıt defterinden yalnızca imzalanmış görüntülerin çekilebilmesini sağlamak için Docker Notary'yi kullanır. İçerik güveni ACR'de etkinleştirildiğinde imzalanmamış görüntüler reddedilir. İmzalama, Docker Content Trust araç zinciri ve güvenilir bir anahtar çifti kullanılarak sürekli tümleştirme işlem hattında gerçekleştirilir. Bu, kötü amaçlı bir görüntünün gönderilip üretime dağıtılabildiği tedarik zinciri saldırılarını önler.

# Enable content trust on the registry
az acr config content-trust update \
  --registry mycontainerregistry \
  --status enabled

# Sign an image when pushing (DOCKER_CONTENT_TRUST env var)
# export DOCKER_CONTENT_TRUST=1
# docker push mycontainerregistry.azurecr.io/myapp:v1.0
# (Docker prompts for signing key passphrase)

Defender ile Güvenlik Açığı Taraması

ACR'ye gönderilen her görüntüyü bilinen işletim sistemi ve uygulama katmanı güvenlik açıkları (CVE'ler) için otomatik olarak taramak üzere Microsoft Defender for Containers'ı etkinleştirin. Defender, güvenlik açıklarını önem derecelerine (Kritik, Yüksek, Orta, Düşük) göre listeleyen bir rapor oluşturur ve düzeltme önerileri sağlar. Azure Policy tümleştirmesi aracılığıyla kritik güvenlik açıkları içeren görüntülerin AKS kümelerine dağıtımını engelleyecek ilkeler yapılandırabilirsiniz.

# Enable Defender for Containers on the subscription
az security pricing create \
  --name Containers \
  --tier Standard

# View vulnerability assessment results
az security assessment list \
  --query "[?contains(displayName, 'Container')].{name:displayName, status:status.code}" \
  -o table

ACR için Özel Uç Nokta

En yüksek güvenlik için ACR'nin genel ağ erişimini devre dışı bırakın ve ACR'ye yalnızca VNet'inizin içindeki bir özel uç nokta üzerinden bağlanın. Böylece kapsayıcı görüntülerinin genel internet üzerinden aktarılmaması, tüm çekme işlemlerinin Azure'ın özel omurgası üzerinden gerçekleştirilmesi sağlanır. Kayıt defteri ana bilgisayar adını VNet'inizin içindeki özel IP adresine çözümlemek için bir özel DNS bölgesi (privatelink.azurecr.io) yapılandırın.

# Create a private endpoint for ACR
az network private-endpoint create \
  --name acr-private-endpoint \
  --resource-group MyRG \
  --vnet-name MyVNet \
  --subnet PrivateEndpointSubnet \
  --private-connection-resource-id \
    $(az acr show --name mycontainerregistry --query id -o tsv) \
  --group-id registry \
  --connection-name acrConnection

# Disable public access
az acr update \
  --name mycontainerregistry \
  --public-network-enabled false

Yaşam Döngüsü Yönetimi: Eski Görüntüleri Temizleme

Yaşam döngüsü yönetimi olmadan kapsayıcı kayıt defterlerinde binlerce eski görüntü etiketi birikir ve pahalı depolama alanı tüketilir. Belirtilen süreden daha eski etiketsiz bildirimleri ve etiketleri silmek için ACR purge görevlerini (yerleşik zamanlayıcı görevi) kullanın. Belirli depoları hedefleyerek ve en az sayıda yeni etiketi koruyarak az acr task create komutunu acr purge komutuyla birlikte kullanıp temizleme işlemlerini bir zamanlamaya göre çalıştırın.

# Create a scheduled purge task: delete tags older than 30d
az acr task create \
  --name scheduledPurge \
  --registry mycontainerregistry \
  --cmd 'acr purge --filter myapp:.*  --ago 30d --keep 5 --untagged' \
  --schedule '0 1 * * *' \
  --context /dev/null

ACR'yi AKS ile Entegrasyon

AKS'yi ACR'ye bağlamanın en basit yolu, AKS yönetilen kimliğine AcrPull rolünü otomatik olarak veren az aks update --attach-acr komutunu kullanmaktır. Bağlantı kurulduktan sonra Kubernetes Pod tanımları, görüntülere yalnızca tam ACR ana bilgisayar adını kullanarak başvurur — AKS kimlik doğrulaması için yönetilen kimliği düğüm düzeyinde saydam biçimde kullandığından imagePullSecrets gerekmez.

# Attach ACR to an existing AKS cluster
az aks update \
  --name myAKSCluster \
  --resource-group MyRG \
  --attach-acr mycontainerregistry

# Now pods can use ACR images without imagePullSecrets
# Example pod spec:
# spec:
#   containers:
#   - name: myapp
#     image: mycontainerregistry.azurecr.io/myapp:v1.0

Hızlı Kontrol

Bu derste ele alınan Microsoft Azure Fundamentals (AZ-900) kavramlarını anlayıp anlamadığınızı test edin.

Ders Özeti

Bu derste şunları öğrendiniz: Azure Container Registry (ACR), Docker görüntülerini depolayan yönetilen özel bir kayıt defteridir; ACR Tasks, yerel bir Docker arka plan hizmeti olmadan bulutta görüntü derlemeyi sağlar ve RBAC rolleri (AcrPull, AcrPush), dağıtım hizmetleri ile CI/CD işlem hatlarının erişimini denetler. Sırada Azure Container Instances konusunu inceleyeceğiz.

Sıkça Sorulan Sorular

“Azure Container Registry” dersi ücretsiz mi?

Evet — “Azure Container Registry” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cloud & IT Cert Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.

“Azure Container Registry” dersinde ne öğreneceğim?

Docker görüntülerini özel bir Azure Container Registry'ye oluşturup gönderin, erişimi rol atamalarıyla yönetin ve görüntü oluşturmayı ACR Tasks ile otomatikleştirin. Cloud & IT Cert Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Cloud & IT Cert Prep öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Cloud & IT Cert Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Azure Container Registry” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Cloud & IT Cert Prep dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Cloud & IT Cert Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Azure Container Registry
  2. Azure Container Instances
  3. Azure için Kubernetes Kavramları
  4. AKS Üzerinde İş Yükleri Dağıtma
← Cloud & IT Cert Prep Sayfasına Dön