Study guide

1.1 ACR: Build, Store, Version & Manage Images

Exam AI-200: Developing AI Cloud Solutions on Azure Exam

Track your progress as you read

Finished sections get a check mark.

1 Introduction & Exam Overview

1.1 Current Exam Facts 1.2 Audience Profile & Study Path

2 Chapter 1: Container Registry & App Service Hosting

1.1 ACR: Build, Store, Version & Manage Images 1.2 ACR Tasks: Build & Run Images 1.3 Deploy Containers to Azure App Service

3 Chapter 2: Azure Container Apps & KEDA Scaling

2.1 Azure Container Apps: Environments, Config & Revisions 2.2 KEDA Event-Driven Scaling in Container Apps

4 Chapter 3: AKS Manifests & Container Troubleshooting

3.1 Deploy & Manage Apps on AKS with Manifests 3.2 Monitor & Troubleshoot AKS and Container Apps

5 Chapter 4: Cosmos DB for NoSQL Fundamentals

4.1 Cosmos DB for NoSQL: SDK Connect & Queries 4.2 Optimize RUs: Indexing Policies & Consistency Levels

6 Chapter 5: Cosmos DB Vectors & Change Feed

5.1 Embeddings & Vector Similarity Search in Cosmos DB 5.2 Change Feed Processor for New/Updated Items

7 Chapter 6: Azure PostgreSQL Foundations for AI

6.1 Azure Database for PostgreSQL: Connect & Query with SDKs 6.2 Schema Design, Data Types & Indexing Strategies 6.3 pgvector Indexing: Latency & Compute Overhead

8 Chapter 7: PostgreSQL Vector Workloads & RAG

7.1 Configure Compute, Memory & Storage for Vector Workloads 7.2 Vector Search, Semantic Retrieval & RAG with Metadata Filters 7.3 Connection Optimization for Throughput & Latency

9 Chapter 8: Azure Managed Redis for AI Solutions

8.1 Azure Managed Redis: Caching, Expiration & Invalidation 8.2 Redis Vector Indexing for Similarity Search

10 Chapter 9: Service Bus & Event Grid for AI Pipelines

9.1 Service Bus Queues & Message Processing 9.2 Topics, Subscriptions & Dead-Letter Queues 9.3 Event Grid: Custom Events & Filters 9.4 Event Grid Retries & Event-Driven Workflows

11 Chapter 10: Azure Functions for Serverless AI Back Ends

10.1 Azure Functions: Triggers & Bindings 10.2 Build Serverless APIs with Functions 10.3 Configure & Deploy Function Apps

12 Chapter 11: Key Vault & App Configuration

11.1 Azure Key Vault: Secret Storage & Retrieval 11.2 Key Vault Secret Rotation Patterns 11.3 Azure App Configuration for App Settings

13 Chapter 12: OpenTelemetry & KQL Observability

12.1 Distributed Tracing with OpenTelemetry SDKs 12.2 Correlating Traces into Azure Monitoring 12.3 Write KQL Queries to Analyze Logs 12.4 KQL for Metrics & Troubleshooting Scenarios

1.1 ACR: Build, Store, Version & Manage Images

Key Takeaways Explain This Topic AI

Azure Container Registry (ACR) is a managed private Docker registry that stores images for App Service, AKS, Container Apps, and other Azure runtimes

Basic, Standard, and Premium SKUs differ in storage, throughput, and Premium-only features such as geo-replication and customer-managed keys

Image tags are mutable aliases; digests (sha256:...) uniquely identify an immutable image manifest and should be used for production pins

Prefer Azure RBAC and managed identities over the registry admin user for push, pull, and CI/CD authentication

Retention policies, content trust, and repository permissions help you manage image lifecycle and reduce registry sprawl

Last updated: July 2026

Azure Container Registry (ACR) is the private registry most Azure AI and cloud developers use to build, store, version, and manage container images . On the AI-200 exam, ACR sits at the start of the containerized-solutions domain: you push images into ACR, then App Service, Azure Container Apps, or AKS pull those images to run. Treating ACR as a first-class artifact store—not a temporary Docker Hub mirror—keeps deployments repeatable and secure.

Why ACR Exists on Azure

Public registries work for demos, but production AI services need private images, Azure-native identity, and network controls. ACR gives you:

  • A fully managed Docker-compatible registry (OCI images and Helm charts)
  • Integration with Microsoft Entra ID , managed identities, and Azure RBAC
  • Optional private endpoints and firewall rules so images never traverse the public internet

Tight coupling to Azure build and deploy tools (ACR Tasks, App Service continuous deployment, AKS image pull secrets via managed identity)

When an App Service Linux web app is configured for a custom container, the default mental model is: build → push to ACR → App Service pulls the tagged (or digest-pinned) image .

Registry SKUs: Basic, Standard, Premium

ACR ships three service tiers. You choose a SKU when you create the registry; you can change tiers later, but Premium-only features require the Premium tier.

  • SKU Typical use Notable capabilities
  • Basic Dev/test, low throughput Cost-optimized entry tier; limited storage and bandwidth

Standard Most production apps Higher storage and throughput; webhook support; suitable for many App Service and Container Apps workloads

Premium Enterprise / multi-region Geo-replication, zone redundancy options, private link, customer-managed keys, higher limits

Geo-replication (Premium concept)

Geo-replication replicates a Premium registry to additional Azure regions. Pulls from a nearby replica reduce latency and outbound transfer for regional AKS or App Service deployments. From a developer perspective you still push to one registry login server; ACR handles regional replicas behind the scenes. Exam scenarios often contrast a single-region Standard registry (fine for one App Service region) with Premium geo-replication when the same image must be pulled efficiently in multiple regions.

Remember: geo-replication is about image distribution , not about running containers. Compute (App Service, AKS) still runs where you deploy it; ACR replicas simply make the pull faster and more resilient.

Build and Push Images into ACR

You can build images locally with Docker and push them, or build in Azure (covered in the next section on ACR Tasks). A local flow looks like:

Authenticate: az acr login --name <registryName> (or use a service principal / managed identity in CI).

Tag the image with the ACR login server: <registryName>.azurecr.io/<repository>:<tag> .

Push: docker push <registryName>.azurecr.io/<repository>:<tag> .

Repository and naming conventions

Inside a registry, images live in repositories (for example ai-api , embeddings-worker ). Good practice for AI-200-style solutions:

  • One repository per deployable service
  • Tags that encode environment or build metadata ( dev , staging , 1.4.2 , git-abc1234 )
  • Avoid overwriting latest as your only production identifier
  • Versioning: Tags Versus Digests

This distinction appears frequently in Azure container questions.

Tags

A tag is a human-readable pointer to a manifest. Tags are mutable by default: pushing myapi:1.0 again can replace what 1.0 points to. That convenience is dangerous for production rollbacks and audits.

Digests

Every pushed image manifest has a content-addressable digest , typically written as sha256:<hex> . Referencing @sha256:... pins the exact bytes of the image configuration and layers. Even if someone retags v1 , the digest still resolves to the original content.

  • Reference style Example Behavior
  • Tag only contoso.azurecr.io/api:1.2.0 Convenient; may change if retagged
  • Digest contoso.azurecr.io/api@sha256:abc… Immutable pin
  • Tag + digest (some tools) Tag for readability, digest for deploy Best of both for CD pipelines

For App Service and Kubernetes manifests, prefer digest pins (or immutable tags enforced by policy) once a release is validated.

  • Manage Images Day to Day
  • Listing and inspecting

Use Azure CLI or the portal to list repositories, tags, and manifests. Inspecting a manifest shows architecture (amd64/arm64), layers, and created time—useful when debugging “wrong image” incidents after a push.

Retention and cleanup

Registries accumulate failed builds and intermediate tags. Retention policies (available on supported SKUs) can automatically untag or delete old manifests based on age or count. Pair retention with CI naming so you never delete the tag your production App Service still references.

Locking and permissions

Repository-scoped permissions and Azure RBAC roles ( AcrPull , AcrPush , AcrDelete , Owner ) limit who can mutate images.

Avoid enabling the registry admin user long-term; it uses a shared username/password. Prefer managed identities for App Service pull access and workload identities / service principals for pipelines.

Network and security controls

Premium registries support private endpoints , so pull traffic stays on your virtual network. Combine with Entra authentication and disable anonymous pull. For regulated AI workloads, also consider content trust / signed images where your pipeline requires provenance.

Connecting ACR to Downstream Hosts

ACR does not run your app; hosting services pull from it:

App Service : configure the container image URL (and optional continuous deployment webhook from ACR).

Azure Container Apps / AKS : use managed identity or pull secrets with AcrPull .

ACR Tasks : build and optionally run containers using ACR-managed compute (next section).

Exam-focused checklist

When a scenario asks how to store and version images for Azure hosting, map the answer to ACR capabilities:

Choose SKU based on geo-replication / private link needs.

Push to <name>.azurecr.io/repo:tag .

Prefer digests for production.

Authenticate with RBAC + managed identity.

Clean up with retention policies so registries stay manageable.

Mastering ACR image management is the foundation for every later container hosting skill on AI-200: if the wrong image lands in the registry—or the right image is tagged ambiguously—App Service and AKS will happily run the mistake at scale.