Cloud & IT Cert Prep · leksjon

Azure Container Registry

Bygg og push Docker-avbildninger til et privat Azure Container Registry, administrer tilgang med rolletildelinger, og automatiser bygging av avbildninger med ACR Tasks.

Leksjon 1 av 413 trinn

Azure Container Registry er en gratis leksjon i Cloud & IT Cert Prep på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Cloud & IT Cert Prep, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Cloud & IT Cert Prep inneholder totalt 4 leksjoner.

Hva er Azure Container Registry?

Azure Container Registry (ACR) er en administrert, privat Docker-registertjeneste basert på åpen kildekode-prosjektet Docker Registry 2.0. Den lagrer og administrerer containeravbildninger og relaterte artefakter (Helm-diagrammer, OCI-artefakter) som brukes av Azure-distribusjonene Deres. ACR integreres direkte med Azure Kubernetes Service (AKS), Azure Container Instances (ACI) og App Service, slik at avbildninger kan hentes uten at De må administrere legitimasjon.

ACR-tjenestenivåer

ACR tilbyr tre tjenestenivåer. Basic er kostnadsoptimalisert for læring og utvikling med lav gjennomstrømning, med 10 GB lagring og begrenset støtte for webhooker. Standard legger til funksjoner for geo-replikering og høyere gjennomstrømning, og egner seg for de fleste produksjonsarbeidsbelastninger. Premium inkluderer geo-replikering, innholdstillit, private koblinger, kundeadministrerte nøkler og høyest båndbredde — og kreves for virksomhetens sikkerhetskrav.

# 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

Sende avbildninger til ACR

For å sende en Docker-avbildning til ACR må De autentisere Docker-klienten, merke den lokale avbildningen med vertsnavnet til ACR-påloggingsserveren og sende den. URL-en til ACR-påloggingsserveren følger mønsteret <registryname>.azurecr.io. Autentisering bruker Azure AD-legitimasjonen Deres via az acr login (for interaktiv bruk), eller et ACR-administratorpassord eller en tjenestekontohaver for automatiserte pipelines.

# 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: skybaserte bygg

ACR Tasks gjør det mulig å bygge Docker-avbildninger i skyen uten en lokal Docker-daemon. En hurtigoppgave (az acr build) sender byggekonteksten til ACR og kjører Dockerfile-filen eksternt, slik at det produseres en avbildning som lagres direkte i registeret. Planlagte eller utløserbaserte oppgaver kan bygge avbildningen på nytt automatisk når basisavbildningen oppdateres, eller når kode legges inn i GitHub. Dermed får De en komplett CI-pipeline for containere uten en separat byggagent.

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

Tilgangskontroll med RBAC

ACR integreres med Azure RBAC for finkornet tilgangskontroll. De innebygde ACR-rollene omfatter AcrPull (kan bare hente avbildninger — for distribusjonstjenester), AcrPush (kan hente og sende — for CI/CD-pipelines) og AcrDelete (administrere avbildningstagger). Tildel rollen AcrPull til den administrerte identiteten for AKS eller App Service, slik at containere kan hente avbildninger uten at legitimasjon lagres noe sted.

# 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

Geo-replikering for globale distribusjoner

Geo-replikering (Premium-nivået) replikerer registeret til flere Azure-regioner. Når AKS eller ACI i en region henter en avbildning, leses den fra den nærmeste replikaen i stedet for et eksternt register, noe som reduserer ventetid og kostnader for utgående trafikk. Replikeringen er transparent — den samme avbildnings-URI-en fungerer globalt, og ACR ruter automatisk henteforespørsler til den geografisk nærmeste replikaen.

# 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

Innholdstillit og signering av avbildninger

Innholdstillit (Premium-nivået) bruker Docker Notary for å sikre at bare signerte avbildninger kan hentes fra registeret. Når innholdstillit er aktivert i ACR, avvises usignerte avbildninger. Signeringen utføres i CI-pipelinen ved hjelp av verktøykjeden Docker Content Trust og et pålitelig nøkkelpar. Dette forhindrer angrep på programvareforsyningskjeden der en ondsinnet avbildning sendes og distribueres til produksjon.

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

Søk etter sikkerhetsproblemer med Defender

Aktiver Microsoft Defender for Containers for automatisk å skanne hver avbildning som sendes til ACR, etter kjente sikkerhetsproblemer i operativsystemet og applikasjonslaget (CVE-er). Defender genererer en rapport som viser sikkerhetsproblemer etter alvorlighetsgrad (Critical, High, Medium, Low), og gir veiledning om utbedring. De kan konfigurere policyer som blokkerer distribusjon av avbildninger med kritiske sikkerhetsproblemer til AKS-klynger via integrasjon med Azure Policy.

# 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

Privat endepunkt for ACR

For maksimal sikkerhet bør De deaktivere ACRs offentlige nettverkstilgang og koble til tjenesten utelukkende via et privat endepunkt i VNet-et. Dette sikrer at containeravbildninger aldri overføres via det offentlige internett — alle henteoperasjoner går gjennom Azures private ryggrad. Konfigurer en privat DNS-sone (privatelink.azurecr.io) for å slå opp registerets vertsnavn til den private IP-adressen i VNet-et.

# 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

Livssyklusadministrasjon: rydde opp i gamle avbildninger

Uten livssyklusadministrasjon samler containerregistre tusenvis av gamle avbildningstagger, noe som bruker kostbar lagringsplass. Bruk ACR purge-oppgaver (en innebygd tidsstyrt oppgave) til å slette manifest uten tagger og tagger som er eldre enn en angitt tidsperiode. Kjør oppryddingen etter en tidsplan ved hjelp av az acr task create med kommandoen acr purge, rettet mot bestemte repositorier, og behold et minimumsantall nyere tagger.

# 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

Integrering av ACR med AKS

Den enkleste måten å koble AKS til ACR på er å bruke kommandoen az aks update --attach-acr, som automatisk gir den administrerte AKS-identiteten rollen AcrPull. Etter tilkoblingen refererer Kubernetes-podspesifikasjoner til avbildninger med bare det fullstendige ACR-vertsnavnet — det kreves ingen imagePullSecrets, fordi AKS bruker den administrerte identiteten til autentisering på en transparent måte på nodenivå.

# 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

Hurtigsjekk

Test forståelsen Deres av Microsoft Azure Fundamentals-konsepter (AZ-900) fra denne leksjonen.

Oppsummering av leksjonen

I denne leksjonen har De lært at Azure Container Registry (ACR) er et administrert privat register som lagrer Docker-avbildninger, at ACR Tasks muliggjør skybaserte avbildningsbygginger uten en lokal Docker-daemon, og at RBAC-roller (AcrPull, AcrPush) styrer tilgangen for distribusjonstjenester og CI/CD-pipelines. Neste tema er Azure Container Instances.

Gratis å komme i gang

Lær deg Cloud & IT Cert Prep med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
150
Leksjoner
600

Ofte stilte spørsmål

Er leksjonen «Azure Container Registry» gratis?

Ja – hele teksten i «Azure Container Registry» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Cloud & IT Cert Prep-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Cloud & IT Cert Prep inneholder totalt 4 leksjoner.

Hva lærer jeg i «Azure Container Registry»?

Bygg og push Docker-avbildninger til et privat Azure Container Registry, administrer tilgang med rolletildelinger, og automatiser bygging av avbildninger med ACR Tasks. Du øver på Cloud & IT Cert Prep med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Cloud & IT Cert Prep?

Ingen tidligere erfaring er nødvendig. Cloud & IT Cert Prep på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «Azure Container Registry»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Cloud & IT Cert Prep-leksjonen?

Ja. Alle Cloud & IT Cert Prep-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Azure Container Registry
  2. Azure Container Instances
  3. Kubernetes-konsepter for Azure
  4. Distribuere arbeidsbelastninger på AKS
← Tilbake til Cloud & IT Cert Prep