0Pricing
Cloud & IT Cert Prep · Lekcja

Azure Container Registry

Buduj i wypychaj obrazy Docker do prywatnego rejestru Azure Container Registry, zarządzaj dostępem za pomocą przypisań ról oraz automatyzuj kompilowanie obrazów przy użyciu ACR Tasks.

Azure Container Registry to bezpłatna lekcja Cloud & IT Cert Prep na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cloud & IT Cert Prep, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.

Czym jest Azure Container Registry?

Azure Container Registry (ACR) to zarządzana, prywatna usługa rejestru Docker oparta na otwartoźródłowym rozwiązaniu Docker Registry 2.0. Służy do przechowywania i zarządzania obrazami kontenerów oraz powiązanymi artefaktami (wykresami Helm i artefaktami OCI) używanymi we wdrożeniach Azure. ACR natywnie integruje się z usługami Azure Kubernetes Service (AKS), Azure Container Instances (ACI) i App Service, umożliwiając płynne pobieranie obrazów bez zarządzania poświadczeniami.

Warstwy usługi ACR

ACR oferuje trzy warstwy usługi. Basic jest zoptymalizowana pod kątem kosztów i przeznaczona do nauki oraz programowania o niewielkiej przepustowości; zapewnia 10 GB miejsca i ograniczoną obsługę elementów webhook. Standard dodaje funkcję replikacji geograficznej i zwiększoną przepustowość, dzięki czemu nadaje się do większości obciążeń produkcyjnych. Premium obejmuje replikację geograficzną, zaufanie do zawartości, łącza prywatne, klucze zarządzane przez klienta i najwyższą przepustowość — jest wymagana w przypadku korporacyjnych wymagań dotyczących bezpieczeństwa.

# 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

Wypychanie obrazów do ACR

Aby wypchnąć obraz Docker do ACR, należy uwierzytelnić klienta Docker, oznaczyć lokalny obraz nazwą hosta serwera logowania ACR, a następnie go wypchnąć. Adres URL serwera logowania ACR ma postać <registryname>.azurecr.io. Uwierzytelnianie odbywa się przy użyciu poświadczeń Azure AD za pomocą polecenia az acr login (do użytku interaktywnego) albo hasła administratora ACR lub jednostki usługi w przypadku zautomatyzowanych potoków.

# 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: kompilacje w chmurze

ACR Tasks umożliwiają kompilowanie obrazów Docker w chmurze bez lokalnego demona Docker. Szybkie zadanie (az acr build) wysyła kontekst kompilacji do ACR i zdalnie uruchamia plik Dockerfile, tworząc obraz przechowywany bezpośrednio w rejestrze. Zadania uruchamiane według harmonogramu lub na podstawie wyzwalaczy mogą automatycznie ponownie kompilować obraz po zaktualizowaniu obrazu bazowego lub zatwierdzeniu kodu w serwisie GitHub, umożliwiając utworzenie pełnego potoku CI dla kontenerów bez oddzielonego agenta kompilacji.

# 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>

Kontrola dostępu za pomocą RBAC

ACR integruje się z usługą Azure RBAC, zapewniając szczegółową kontrolę dostępu. Wbudowane role ACR obejmują AcrPull (tylko pobieranie obrazów — dla usług wdrażania), AcrPush (pobieranie i wypychanie — dla potoków CI/CD) oraz AcrDelete (zarządzanie tagami obrazów). Należy przypisać rolę AcrPull zarządzanej tożsamości AKS lub App Service, aby kontenery mogły pobierać obrazy bez przechowywania poświadczeń w dowolnym miejscu.

# 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

Replikacja geograficzna na potrzeby wdrożeń globalnych

Replikacja geograficzna (warstwa Premium) replikuje rejestr w wielu regionach Azure. Gdy usługa AKS lub ACI w danym regionie pobiera obraz, odczytuje go z najbliższej repliki zamiast ze zdalnego rejestru, co zmniejsza opóźnienia i koszty transferu wychodzącego. Replikacja jest przejrzysta — ten sam identyfikator URI obrazu działa globalnie, a ACR automatycznie kieruje żądania pobrania do geograficznie najbliższej repliki.

# 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

Zaufanie do zawartości i podpisywanie obrazów

Zaufanie do zawartości (warstwa Premium) korzysta z narzędzia Docker Notary, aby zapewnić, że z rejestru można pobierać wyłącznie podpisane obrazy. Po włączeniu zaufania do zawartości w ACR niepodpisane obrazy są odrzucane. Podpisywanie odbywa się w potoku CI za pomocą zestawu narzędzi Docker Content Trust oraz zaufanej pary kluczy. Zapobiega to atakom na łańcuch dostaw, w których złośliwy obraz zostaje wypchnięty do rejestru i wdrożony na produkcji.

# 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)

Skanowanie luk w zabezpieczeniach za pomocą usługi Defender

Włącz Microsoft Defender for Containers, aby automatycznie skanować każdy obraz wypchnięty do ACR pod kątem znanych luk w systemie operacyjnym i warstwie aplikacji (CVE). Usługa Defender generuje raport zawierający listę luk według poziomu ważności (Krytyczne, Wysokie, Średnie, Niskie) oraz wskazówki dotyczące ich usuwania. Za pomocą integracji z usługą Azure Policy można skonfigurować zasady blokujące wdrażanie obrazów z lukami krytycznymi do klastrów AKS.

# 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

Prywatny punkt końcowy dla ACR

Aby zapewnić maksymalne bezpieczeństwo, wyłącz publiczny dostęp sieciowy do ACR i łącz się z rejestrem wyłącznie za pośrednictwem prywatnego punktu końcowego znajdującego się w sieci VNet. Gwarantuje to, że obrazy kontenerów nigdy nie są przesyłane przez publiczny Internet — wszystkie operacje pobierania odbywają się za pośrednictwem prywatnej sieci szkieletowej Azure. Skonfiguruj prywatną strefę DNS (privatelink.azurecr.io), aby rozpoznawała nazwę hosta rejestru na prywatny adres IP wewnątrz sieci VNet.

# 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

Zarządzanie cyklem życia: usuwanie starych obrazów

Bez zarządzania cyklem życia w rejestrach kontenerów gromadzą się tysiące starych tagów obrazów, zajmując kosztowną przestrzeń dyskową. Użyj zadań ACR purge (wbudowanych zadań czasowych), aby usuwać nieotagowane manifesty i tagi starsze niż określony czas. Uruchamiaj czyszczenie zgodnie z harmonogramem za pomocą polecenia az acr task create z poleceniem acr purge, wskazując konkretne repozytoria i zachowując minimalną liczbę najnowszych tagów.

# 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

Integracja ACR z AKS

Najprostszym sposobem połączenia AKS z ACR jest użycie polecenia az aks update --attach-acr, które automatycznie nadaje zarządzanej tożsamości AKS rolę AcrPull. Po dołączeniu specyfikacje podów Kubernetes odwołują się do obrazów wyłącznie za pomocą pełnej nazwy hosta ACR — nie trzeba używać imagePullSecrets, ponieważ AKS przezroczyste uwierzytelnianie na poziomie węzła realizuje za pomocą zarządzanej tożsamości.

# 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

Szybkie sprawdzenie

Sprawdź swoją znajomość zagadnień Microsoft Azure Fundamentals (AZ-900) omówionych w tej lekcji.

Podsumowanie lekcji

W tej lekcji dowiedział się Pan / dowiedziała się Pani, że Azure Container Registry (ACR) to zarządzany prywatny rejestr przechowujący obrazy Docker, ACR Tasks umożliwiają budowanie obrazów w chmurze bez lokalnego demona Docker, a role RBAC (AcrPull, AcrPush) kontrolują dostęp usług wdrożeniowych i potoków CI/CD. W następnej części omówimy Azure Container Instances.

Często zadawane pytania

Czy lekcja „Azure Container Registry” jest bezpłatna?

Tak — pełny tekst „Azure Container Registry” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cloud & IT Cert Prep, przejdź na CoddyKit PRO. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.

Co nauczysz się w „Azure Container Registry”?

Buduj i wypychaj obrazy Docker do prywatnego rejestru Azure Container Registry, zarządzaj dostępem za pomocą przypisań ról oraz automatyzuj kompilowanie obrazów przy użyciu ACR Tasks. Ćwiczysz Cloud & IT Cert Prep z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cloud & IT Cert Prep?

Nie wymagamy żadnego doświadczenia. Cloud & IT Cert Prep w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Azure Container Registry”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cloud & IT Cert Prep?

Tak. Każda lekcja Cloud & IT Cert Prep zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Azure Container Registry
  2. Azure Container Instances
  3. Podstawy Kubernetes na platformie Azure
  4. Wdrażanie obciążeń w AKS
← Powrót do Cloud & IT Cert Prep