✓Azure subscription with contributor access, Azure CLI 2.50+, Docker Desktop 20.10+, kubectl 1.28+, Helm 3.8+ (optional), basic knowledge of containerization and Kubernetes concepts.
✦ Definition~90s read
What is Azure Container Registry (ACR)?
Microsoft Azure — Azure Container Registry (ACR) is a core Azure service that handles container registry in the Microsoft cloud ecosystem.
★
Azure Container Registry (ACR) is like having a specialized tool that handles container registry in the Microsoft cloud — you manage the configuration, Azure handles the infrastructure.
Plain-English First
Azure Container Registry (ACR) is like having a specialized tool that handles container registry in the Microsoft cloud — you manage the configuration, Azure handles the infrastructure.
Azure is Microsoft's cloud computing platform offering over 200 services. This article covers azure container registry (acr) with production-ready configurations, best practices, and hands-on examples.
Why ACR Exists and When to Use It
Azure Container Registry (ACR) is a managed Docker registry service for storing and managing container images across all Azure deployment targets. Unlike Docker Hub, ACR integrates natively with Azure Active Directory, supports geo-replication for low-latency pulls, and provides advanced security features like image scanning and content trust. Use ACR when you need private, secure storage for your container images within the Azure ecosystem, especially for production workloads where you control access, retention, and compliance. Avoid ACR if you need a multi-cloud registry or prefer a vendor-neutral solution like Harbor. ACR shines in single-cloud Azure shops where tight integration with AKS, App Service, and Azure Pipelines reduces operational overhead.
create-acr.shBASH
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash
# Create an ACR instance with PremiumSKUfor geo-replication
az acr create \
--resource-group my-rg \
--name myacr \
--sku Premium \
--admin-enabled false \
--location eastus
# Enable geo-replication to WestEurope
az acr replication create \
--registry myacr \
--location westeurope
Output
{
"id": "/subscriptions/.../registries/myacr",
"location": "eastus",
"name": "myacr",
"provisioningState": "Succeeded",
"sku": {
"name": "Premium",
"tier": "Premium"
},
"status": null,
"storageAccount": null,
"tags": {}
}
💡SKU Selection
Always use Premium SKU for production. The cost difference is negligible compared to the downtime from manual replication or lack of geo-redundancy.
📊 Production Insight
We once lost a deployment because we used Basic SKU and a regional outage took down our only registry. Premium geo-replication would have saved us.
🎯 Key Takeaway
ACR is the best private registry for Azure-native workloads, offering deep integration and geo-replication.
thecodeforge.io
Azure Container Registry
Authentication and Authorization: Beyond admin keys
Never use admin keys in production. They are static, shared secrets that bypass Azure AD and cannot be rotated without downtime. Instead, use Azure AD authentication with managed identities or service principals. For AKS clusters, assign the AcrPull role to the cluster's managed identity. For CI/CD pipelines, use a service principal with AcrPush role scoped to the registry. This enables token-based authentication that can be rotated and audited. For third-party tools that don't support Azure AD, use repository-scoped tokens (preview) to limit access to specific repositories. Always enforce Azure AD authentication and disable admin user after initial setup.
auth-acr.shBASH
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/bash
# AssignAcrPull role to AKS cluster managed identity
AKS_CLUSTER_NAME="my-aks"
AKS_RESOURCE_GROUP="my-aks-rg"
ACR_NAME="myacr"
# Get the principal ID of the AKS cluster's kubelet identity
AKS_PRINCIPAL_ID=$(az aks show \
--resource-group $AKS_RESOURCE_GROUP \
--name $AKS_CLUSTER_NAME \
--query identityProfile.kubeletidentity.objectId \
--output tsv)
# AssignAcrPull role
az role assignment create \
--assignee $AKS_PRINCIPAL_ID \
--role AcrPull \
--scope $(az acr show --name $ACR_NAME --query id --output tsv)
If you must use admin keys temporarily, rotate them immediately after setting up Azure AD auth. They are a common source of credential leaks.
📊 Production Insight
A team once committed admin keys to a public GitHub repo. The registry was compromised within hours. Azure AD auth would have prevented this.
🎯 Key Takeaway
Use Azure AD authentication with managed identities or service principals; never use admin keys in production.
Building and Pushing Images with ACR Tasks
ACR Tasks provides on-demand container image building directly in Azure, eliminating the need for a local Docker daemon. Use it for automated builds triggered by Git commits or base image updates. ACR Tasks supports multi-step workflows, parallel builds, and can build from any Dockerfile. For production, define tasks with YAML that include unit tests, linting, and security scanning. Use the acr build command for ad-hoc builds, but prefer task definitions for repeatability. ACR Tasks also caches layers across builds, speeding up subsequent runs. Integrate with Azure Pipelines or GitHub Actions for full CI/CD, but ACR Tasks alone can handle simple build pipelines.
ACR Tasks caches layers in the registry. Use predictable layer ordering (e.g., install dependencies before copying source) to maximize cache hits.
📊 Production Insight
We reduced build times by 60% by moving from local Docker builds to ACR Tasks, thanks to layer caching and parallel steps.
🎯 Key Takeaway
ACR Tasks offloads image building to Azure, with caching and Git-triggered automation.
thecodeforge.io
Azure Container Registry
Geo-Replication for Global Deployments
Geo-replication replicates your container images across multiple Azure regions, enabling fast pulls from any location and providing disaster recovery. Enable it on Premium SKU only. When you push an image to one region, it's asynchronously replicated to all enabled regions. AKS clusters in different regions pull from their local replica, reducing latency and avoiding single points of failure. Monitor replication status via Azure Monitor or CLI. Be aware of eventual consistency: a newly pushed image may not be immediately available in all regions. For critical deployments, wait for replication confirmation before rolling out. Geo-replication also helps with data sovereignty requirements.
geo-replicate.shBASH
1
2
3
4
5
6
7
8
9
10
#!/bin/bash
# Add geo-replication to WestEurope and SoutheastAsia
az acr replication create --registry myacr --location westeurope
az acr replication create --registry myacr --location southeastasia
# List all replications
az acr replication list --registry myacr --output table
# Check replication status for a specific image
az acr manifest show-metadata --registry myacr --name myapp:latest --query "repositories[0].tags[0].digest"
Output
Location Status
-------------- ---------
eastus Ready
westeurope Ready
southeastasia Ready
sha256:abc123...
⚠ Consistency Matters
Geo-replication is asynchronous. For critical rollouts, use the az acr replication list to verify all replicas are up-to-date before proceeding.
📊 Production Insight
During a global launch, we pushed an image and immediately triggered deployments in all regions. Some regions got the old image because replication hadn't completed. Now we wait for replication confirmation.
🎯 Key Takeaway
Geo-replication ensures low-latency pulls and disaster recovery, but requires Premium SKU and awareness of eventual consistency.
Security: Image Scanning and Content Trust
ACR integrates with Microsoft Defender for Cloud to scan images for vulnerabilities on push. Enable this for all repositories. Additionally, use content trust (Notary v1) to sign images and verify publisher identity. Content trust ensures only signed images are pulled, preventing tampering. For production, enforce that only signed images can be deployed by configuring AKS admission controllers or using Azure Policy. Also, enable quarantine: when a vulnerability is found, the image is marked as untrusted and cannot be pulled until resolved. Regularly review scan results and set up alerts for critical vulnerabilities. Rotate signing keys periodically.
Enable quarantine to automatically block vulnerable images from being pulled. This adds a safety net but requires proper alerting to avoid blocking legitimate deployments.
📊 Production Insight
We once deployed an image with a critical vulnerability because scanning was not enforced. Now we use Azure Policy to block deployments of unsigned or vulnerable images.
🎯 Key Takeaway
Combine image scanning with content trust to prevent vulnerable or tampered images from reaching production.
Automated Cleanup and Retention Policies
Without cleanup, ACR repositories accumulate stale images, consuming storage and increasing costs. Use retention policies to automatically delete untagged manifests after a specified number of days. For tagged images, implement a custom cleanup strategy using ACR Tasks or Azure Automation. A common approach is to keep only the last N versions per repository. Use the acr purge command in a scheduled task to remove old images. Be careful not to delete images currently in use by running containers. Tag images with build numbers or dates to facilitate selective deletion. Monitor storage usage and set alerts for unexpected growth.
cleanup-task.yamlYAML
1
2
3
4
5
6
7
version: v1.1.0
steps:
- cmd: |
az acr run --registry myacr --cmd "acr purge --filter 'myapp:.*' --ago 30d --untagged" /dev/null
# Schedule task to run daily at 2AM
# az acr task create --registry myacr --name cleanup --file cleanup-task.yaml --schedule "0 2 * * *"
Before purging, ensure no running containers reference the images. Use Azure Resource Graph to query container instances and AKS pods for image references.
📊 Production Insight
We once hit the storage limit on a Basic SKU because we never cleaned up. The registry became read-only, blocking all deployments. Now we run daily cleanup tasks.
🎯 Key Takeaway
Automate image cleanup with retention policies and scheduled purge tasks to control storage costs.
Integrating ACR with AKS for Seamless Deployments
The most common production pattern is ACR feeding images to AKS. Use the AKS cluster's managed identity to pull images from ACR (as shown earlier). For deployments, reference images by digest rather than tag to ensure immutability. Use Helm charts or Kustomize to manage deployments, and update the image digest in your CI/CD pipeline. For blue-green or canary deployments, leverage ACR's repository structure to separate versions. Monitor pull latency and set up Azure Monitor alerts for failed pulls. Consider using ACR Connected Registry for edge deployments where connectivity is intermittent.
Tags are mutable. Using a digest guarantees the exact image version, preventing unexpected updates from tag overwrites.
📊 Production Insight
We had a production incident where a developer overwrote the 'latest' tag, and a rolling update picked up the wrong image. Now we always use digests in deployment manifests.
🎯 Key Takeaway
Integrate ACR with AKS using managed identity and immutable image references for reliable deployments.
Monitoring and Troubleshooting ACR
Monitor ACR health using Azure Monitor metrics: pull/push latency, storage usage, and authentication failures. Set up alerts for high latency or failed requests. Enable diagnostic logs to capture all registry operations, including authentication attempts and image pulls. Use Log Analytics to query logs for troubleshooting. Common issues: authentication failures (check role assignments), pull timeouts (check network latency or geo-replication status), and storage limits (monitor usage and set alerts). For slow pulls, ensure the AKS cluster is in the same region as the ACR replica. Use az acr check-health for a quick diagnostic.
diagnose.shBASH
1
2
3
4
5
6
7
8
#!/bin/bash
# Run health check
az acr check-health --name myacr --yes
# Query logs for failed pulls
az monitor log-analytics query \
--workspace my-workspace \
--query "ContainerRegistryLoginEvents | where ResultType != 'Success' | project TimeGenerated, Identity, ResultDescription"
Run az acr check-health regularly in your CI/CD pipeline to catch issues early. It checks connectivity, authentication, and Docker version compatibility.
📊 Production Insight
We once had a silent failure where ACR was reachable but geo-replication lagged. Our monitoring didn't catch it until users reported slow pulls. Now we monitor replication lag.
🎯 Key Takeaway
Proactive monitoring with Azure Monitor and health checks prevents registry issues from impacting deployments.
Cost Optimization and SKU Selection
ACR pricing is based on SKU, storage, and data transfer. Basic SKU is for development only (10 GB storage, no geo-replication). Standard SKU (100 GB) is for low-volume production. Premium SKU (500 GB) is for production with geo-replication, content trust, and higher throughput. Optimize costs by: using retention policies to delete unused images, choosing the right SKU based on storage needs, and minimizing cross-region data transfer by co-locating registries and compute. For high-volume pulls, consider using a content delivery network (CDN) or Azure Front Door to cache images. Monitor storage growth and scale up SKU only when needed.
Start with Standard SKU and monitor usage. Upgrade to Premium only when you need geo-replication or content trust. Avoid over-provisioning.
📊 Production Insight
We saved $200/month by downgrading from Premium to Standard after removing unused geo-replications and implementing cleanup policies.
🎯 Key Takeaway
Choose ACR SKU based on storage and feature needs; use retention policies to control storage costs.
Disaster Recovery and Backup Strategies
ACR geo-replication provides built-in disaster recovery for the registry itself. However, you also need to protect against accidental deletion of images or the entire registry. Enable soft delete (preview) to recover deleted images within a retention period. Export critical images to another Azure region or another cloud as a backup. Use Azure Backup for the registry metadata, but note that images themselves are not backed up by default. For compliance, export image manifests and layers to Azure Blob Storage periodically. Test your disaster recovery plan by simulating a regional failure and verifying that your AKS clusters can pull from the secondary replica.
backup-images.shBASH
1
2
3
4
5
6
7
8
9
#!/bin/bash
# Export all images from ACR to another registry (e.g., in another region)
az acr import \
--source myacr.azurecr.io/myapp:latest \
--target myacr-backup.azurecr.io/myapp:latest \
--registry myacr-backup
# Enable soft delete
az acr config soft-delete update --registry myacr --status enabled --days 7
Output
Import succeeded
Soft delete enabled for 7 days
⚠ Test Your DR Plan
Don't assume geo-replication works until you test it. Simulate a regional outage by blocking traffic to the primary region and verify failover.
📊 Production Insight
During a real regional outage, we discovered our geo-replication was misconfigured and images weren't replicating. Now we run monthly DR drills.
🎯 Key Takeaway
Use geo-replication for regional failover, soft delete for accidental deletions, and export critical images to a secondary registry.
Advanced: Connected Registry and Edge Deployments
ACR Connected Registry extends ACR to on-premises or edge environments with intermittent connectivity. It acts as a local cache that synchronizes images from the cloud registry. Use it for IoT, retail, or manufacturing scenarios where pulling from the cloud is slow or unreliable. Deploy the connected registry agent on a local server, configure synchronization rules, and manage it via Azure. The connected registry supports read-only (pull) and read-write (push) modes. For production, ensure the local cache has enough storage and monitor synchronization status. Failover to cloud registry if local cache is outdated.
Connected registry created. Agent deployed on edge device.
🔥Offline Mode
The connected registry can serve cached images even when disconnected from the cloud. Plan for stale data and implement local validation.
📊 Production Insight
In a retail deployment, we used connected registries in stores to avoid pulling images over slow WAN links. It reduced deployment time from 30 minutes to 2 minutes.
🎯 Key Takeaway
ACR Connected Registry brings cloud registry capabilities to edge environments with intermittent connectivity.
Putting It All Together: Production CI/CD Pipeline
A production-grade CI/CD pipeline using ACR integrates source control, automated builds, security scanning, and deployment. Use Azure Pipelines or GitHub Actions to trigger ACR Tasks on commits. After build, scan the image with Defender for Cloud. If vulnerabilities are found, fail the pipeline. Sign the image with content trust. Then, update the Kubernetes deployment manifest with the new image digest and apply it to AKS. Use staged rollouts with canary deployments. Monitor the rollout with Azure Monitor and roll back if errors exceed thresholds. This end-to-end automation ensures only secure, signed images reach production.
Build succeeded. Image scanned and signed. Deployed to AKS.
💡Immutable Tags
Use build IDs or commit SHAs as image tags. This ensures traceability and prevents tag overwrites.
📊 Production Insight
Our pipeline once failed because a vulnerability scan found a critical issue in a base image. The pipeline blocked the deployment, preventing a potential breach. Automate security gates.
🎯 Key Takeaway
A fully automated CI/CD pipeline with ACR ensures secure, signed, and validated images are deployed consistently.
Artifact Cache: Pull-Through Proxy for Public and Private Registries
ACR Artifact Cache acts as a pull-through proxy for container images from upstream registries like Docker Hub, Microsoft Artifact Registry (MCR), Quay, GitHub Container Registry, and Google Container Registry. Define cache rules that map an upstream repository to a local ACR repository. When a client pulls an image through the cache, ACR proxies the request to the upstream registry and streams the content back while asynchronously copying the image to local storage. Subsequent pulls are served directly from ACR with no upstream traffic. This mitigates Docker Hub rate limits, improves reliability (cached images are available even if the upstream is down), and reduces latency. Use wildcard rules (e.g., contoso.azurecr.io/ => mcr.microsoft.com/) to cache entire namespaces. For authenticated registries like Docker Hub, create a credential set for authentication. For production, configure cache rules for all external images your workloads depend on. Enable geo-replication on your ACR to propagate cached images to all regions. Monitor cache hit ratio via Azure Monitor metrics to understand effectiveness.
artifact-cache.shBASH
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash
# Create a credential set forDockerHub (authenticated pulls)
az acr credential-set create \
--registry myacr \
--name docker-hub-creds \
--login-server docker.io \
--username "my-docker-hub-user" \
--password "my-docker-hub-token"
# Create a cache rule for nginx from DockerHub
az acr cache create \
--registry myacr \
--name nginx-cache \
--source-repo docker.io/library/nginx \
--target-repo nginx \
--credential-set docker-hub-creds
# Wildcard cache rule for all MCR images
az acr cache create \
--registry myacr \
--name mcr-all \
--source-repo mcr.microsoft.com/* \
--target-repo mcr/*
Output
Credential set created. Cache rules created for nginx and MCR wildcard.
🔥Multi-Arch and Webhooks
For multi-arch images, Artifact Cache caches the manifest list + only the requested platform manifest. Other architectures are cached on-demand. ACR push webhooks fire when the async copy completes, signaling the image is stored locally.
📊 Production Insight
During a Docker Hub outage, our deployments continued uninterrupted because all our base images were cached in ACR. The artifact cache rules had pre-populated the cache during normal operations, making us immune to the upstream downtime.
🎯 Key Takeaway
Artifact Cache acts as a pull-through proxy to mitigate rate limits, improve reliability, and reduce pull latency from upstream registries.
thecodeforge.io
Azure Container Registry
Network Security: Private Endpoints, Firewall Rules, and Service Tags
For production security, restrict network access to your ACR using Private Endpoints (Premium SKU) or IP firewall rules. Private Endpoints assign private IP addresses to the registry from your virtual network, eliminating exposure to the public internet. Traffic stays on the Microsoft backbone network. Configure DNS with a private zone (privatelink.azurecr.io) so the registry FQDN resolves to the private IP. Each geo-replica adds dedicated data endpoints (..data.azurecr.io) — plan subnet sizing accordingly (minimum /27, ideally /24 for geo-replicated registries). For clients outside Azure (on-premises, IoT), use IP firewall rules on the public endpoint. Lock down access to specific IP ranges or use the AzureContainerRegistry service tag. Enable dedicated data endpoints to replace the broad *.blob.core.windows.net wildcard with scoped firewall rules for your specific registry's data endpoints, mitigating data exfiltration risks. For trusted Azure services (Defender for Cloud, ACR Tasks), enable the 'Allow trusted services' setting to bypass network rules. When using Private Endpoints, disable public network access for defense-in-depth.
private-endpoint.shBASH
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/bash
# Disablepublic network access
az acr update --name myacr --public-network-enabled false
# Create a private endpoint
az network private-endpoint create \
--name myacr-pe \
--resource-group my-rg \
--vnet-name my-vnet \
--subnet my-subnet \
--private-connection-resource-id $(az acr show --name myacr --query id -o tsv) \
--group-ids registry \
--connection-name myacr-connection
# CreateprivateDNS zone
az network private-dns zone create \
--resource-group my-rg \
--name privatelink.azurecr.io
# Link to virtual network
az network private-dns link vnet create \
--resource-group my-rg \
--zone-name privatelink.azurecr.io \
--name myacr-dns-link \
--virtual-network my-vnet \
--registration-enabled false
Output
Private endpoint created. DNS records configured. Registry accessible only from the virtual network.
⚠ Private Endpoint IP Planning
A geo-replicated registry with private endpoints consumes 2 IPs initially + 1 per added replica. With regional endpoints enabled, add +1 per replica. Use at least a /27 subnet for PE subnets. Run az acr show-endpoints --name <registry> to see all endpoint FQDNs.
📊 Production Insight
We had a security incident where a developer accidentally exposed the admin credentials, and an external IP pulled images for 12 hours. After moving to Private Endpoints with public access disabled, this attack vector was eliminated entirely.
🎯 Key Takeaway
Use Private Endpoints for Azure-native workloads and IP firewall rules for external clients; enable dedicated data endpoints to reduce attack surface.
⚙ Quick Reference
14 commands from this guide
File
Command / Code
Purpose
create-acr.sh
az acr create \
Why ACR Exists and When to Use It
auth-acr.sh
AKS_CLUSTER_NAME="my-aks"
Authentication and Authorization
acr-task.yaml
version: v1.1.0
Building and Pushing Images with ACR Tasks
geo-replicate.sh
az acr replication create --registry myacr --location westeurope
Geo-Replication for Global Deployments
enable-scanning.sh
az acr update --name myacr --resource-group my-rg --enable-scanning true
Security
cleanup-task.yaml
version: v1.1.0
Automated Cleanup and Retention Policies
deployment.yaml
apiVersion: apps/v1
Integrating ACR with AKS for Seamless Deployments
diagnose.sh
az acr check-health --name myacr --yes
Monitoring and Troubleshooting ACR
cost-estimate.sh
az acr show-usage --name myacr --resource-group my-rg --output table
Cost Optimization and SKU Selection
backup-images.sh
az acr import \
Disaster Recovery and Backup Strategies
connected-registry.sh
az acr connected-registry create \
Advanced
azure-pipelines.yml
trigger:
Putting It All Together
artifact-cache.sh
az acr credential-set create \
Artifact Cache
private-endpoint.sh
az acr update --name myacr --public-network-enabled false
Network Security
Key takeaways
1
ACR is the best private registry for Azure-native workloads
It offers deep integration with Azure AD, AKS, and Pipelines, with geo-replication for global deployments.
2
Authentication must use Azure AD, not admin keys
Use managed identities for AKS and service principals for CI/CD to avoid static secrets and enable auditing.
3
Security is non-negotiable
scan and sign every image** — Enable Defender for Cloud scanning and content trust to prevent vulnerable or tampered images from reaching production.
4
Automate cleanup and monitor costs
Use retention policies and scheduled purge tasks to control storage growth, and right-size your SKU based on actual usage.
INTERVIEW PREP · PRACTICE MODE
Interview Questions on This Topic
Q01JUNIOR
Explain Azure Container Registry (ACR) and its use cases.
Q02JUNIOR
How does Azure Container Registry (ACR) handle high availability?
Q03JUNIOR
What are the security best practices for container registry?
Q04JUNIOR
How do you optimize costs for container registry?
Q05JUNIOR
Compare Azure container registry with self-hosted alternatives.
Q01 of 05JUNIOR
Explain Azure Container Registry (ACR) and its use cases.
ANSWER
Microsoft Azure — Azure Container Registry (ACR) is an Azure service for managing container registry in the cloud. Use it when you need reliable, scalable container registry without managing underlying infrastructure.
Q02 of 05JUNIOR
How does Azure Container Registry (ACR) handle high availability?
ANSWER
Azure provides region pairs, availability zones, and SLA-backed guarantees. Configure redundancy at the application and data tier for 99.95%+ availability.
Q03 of 05JUNIOR
What are the security best practices for container registry?
ANSWER
Use managed identities, RBAC with least privilege, encrypt data at rest and in transit, enable diagnostic logging, and regularly audit access with Azure Monitor.
Q04 of 05JUNIOR
How do you optimize costs for container registry?
ANSWER
Right-size resources based on metrics, use reserved instances or savings plans, implement auto-scaling, and review Azure Advisor cost recommendations.
Q05 of 05JUNIOR
Compare Azure container registry with self-hosted alternatives.
ANSWER
Azure managed services reduce operational overhead (patching, backups, scaling). Trade-offs include less control and potential cost at extreme scale. Best for teams wanting to focus on applications over infrastructure.
01
Explain Azure Container Registry (ACR) and its use cases.
JUNIOR
02
How does Azure Container Registry (ACR) handle high availability?
JUNIOR
03
What are the security best practices for container registry?
JUNIOR
04
How do you optimize costs for container registry?
JUNIOR
05
Compare Azure container registry with self-hosted alternatives.
JUNIOR
FAQ · 6 QUESTIONS
Frequently Asked Questions
01
Can I use ACR with non-Azure Kubernetes clusters?
Yes, you can use ACR with any Kubernetes cluster that can authenticate via Azure AD or service principal. You need to create a Kubernetes secret with the service principal credentials. However, you lose the tight integration benefits like managed identity. For non-Azure clusters, consider using a vendor-neutral registry like Harbor.
Was this helpful?
02
How do I rotate the admin keys for ACR?
Regenerate admin keys via the Azure portal or CLI using az acr credential renew. But the better approach is to disable admin keys entirely and use Azure AD authentication. If you must use admin keys, rotate them regularly and store them in a key vault.
Was this helpful?
03
What's the difference between ACR Tasks and Azure Pipelines?
ACR Tasks is a lightweight, registry-integrated build service for container images. Azure Pipelines is a full CI/CD platform that can orchestrate complex workflows including building, testing, and deploying. Use ACR Tasks for simple build-and-push scenarios; use Azure Pipelines for multi-stage pipelines with advanced testing and deployment strategies.
Was this helpful?
04
How do I handle image pull failures in AKS due to ACR authentication?
First, verify the AKS cluster's managed identity has the AcrPull role. Check the kubelet logs for authentication errors. If using a service principal, ensure the secret is correct and not expired. Use kubectl describe pod to see the exact error. Common fixes: re-role assignment, update image pull secret, or restart the kubelet.
Was this helpful?
05
Can I store Helm charts in ACR?
Yes, ACR supports OCI artifacts, including Helm charts. Use helm push with the OCI format. This allows you to store both container images and Helm charts in the same registry, simplifying artifact management. Enable OCI support in Helm 3.8+.
Was this helpful?
06
What is the maximum storage limit for ACR?
Basic SKU: 10 GB, Standard: 100 GB, Premium: 500 GB (scalable up to 10 TB by request). If you need more, you can request a quota increase. For very large registries, consider using multiple registries or implementing aggressive cleanup policies.