Zone redundancy is enabled by default for all Azure Container Registries in regions that support availability zones, making your resources more resilient automatically and at no additional cost. This enhancement applies to all SKUs, including Basic and Standard, and has been rolled out to both new and existing registries in supported regions. For Premium registries that use geo-replication, all replicas in supported regions are also zone redundant by default.
For more information about availability zone support requirements and features, as well as multi-region deployment options, see Reliability in Azure Container Registry.
Important
The Azure portal and other tooling might not yet reflect the zone redundancy update accurately. The zoneRedundancy property in your registry’s configuration might still show as false, but zone redundancy is active for all registries in supported regions. We're actively updating the portal and API surfaces to reflect this default behavior more transparently. All previously enabled features continue to function as expected.
This article describes how to create zone-redundant registries and geo-replicas in Azure Container Registry.
Create a zone-redundant registry in Azure Container Registry
To create a zone-redundant registry in the Premium service tier, use Azure portal, Azure CLI, or a Bicep file.
Sign in to the Azure portal.
Select Create a resource > Containers > Container Registry.
In the Basics tab, select or create a resource group, and enter a unique registry name.
In Location, select a region that supports availability zones, such as East US.
In SKU, select Premium.
In Use availability zones, ensure that Enabled is selected.
Optionally, configure more registry settings, and then select Review + create.
Select Create to deploy the registry instance.
Make sure that you have the latest version of Azure CLI. If you need to install or upgrade, see Install Azure CLI.
If you don't have a resource group in a region that supports availability zones, run az group create to create a resource group (replace <resource-group-name> and <location> with your values):
az group create --name <resource-group-name> --location <location>
Select a region that supports availability zones, such as eastus.
Create a zone-enabled registry in the Premium service tier by running az acr create, replacing <resource-group-name>, <container-registry-name>, and <region-name> with your own values:
az acr create \
--resource-group <resource-group-name> \
--name <container-registry-name> \
--location <region-name> \
--zone-redundancy enabled \
--sku Premium
In the command output, note the zoneRedundancy property for the registry. When zoneRedundancy is set to "Enabled", the registry is zone redundant.
If you don't have a resource group in a region that supports availability zones, run az group create to create a resource group (replace <resource-group-name> and <location> with your values):
az group create --name <resource-group-name> --location <location>
To create a zone-redundant registry, copy the following Bicep file to a new file and save it using a filename such as registryZone.bicep. By default, the Bicep file enables zone redundancy in the registry.
@description('Globally unique name of your Azure Container Registry')
@minLength(5)
@maxLength(50)
param containerRegistryName string = 'acr${uniqueString(resourceGroup().id)}'
@description('Location for registry home replica.')
param location string = resourceGroup().location
@description('Enable admin user for registry. This is not recommended for production use.')
param adminUserEnabled bool = false
@description('Enable zone redundancy of registry\'s home replica. Requires the registry\'s region supports availability zones.')
@allowed([
'Enabled'
'Disabled'
])
param containerRegistryZoneRedundancy string = 'Enabled'
// Tier of your Azure Container Registry. Geo-replication and zone redundancy require Premium SKU.
var acrSku = 'Premium'
resource containerRegistry 'Microsoft.ContainerRegistry/registries@2025-04-01' = {
name: containerRegistryName
location: location
sku: {
name: acrSku
}
properties: {
adminUserEnabled: adminUserEnabled
zoneRedundancy: containerRegistryZoneRedundancy
}
}
output containerRegistryLoginServer string = containerRegistry.properties.loginServer
Run az deployment group create create the registry using the template file you saved, replacing <resource-group-name> and <registry-name> with your values.
Note
If you deploy the template without parameters, it creates a unique name for you.
az deployment group create \
--resource-group <resource-group-name> \
--template-file registryZone.bicep \
--parameters containerRegistryName=<registry-name>
Create a zone-redundant geo-replica
You can set up a zone-redundant replica in an Azure region separate from your registry's home region.
Geo-replication in the Premium tier of Azure Container Registry replicates your container registry's contents to multiple Azure regions. If your Premium registry uses geo-replication, your replicas will also be zone redundant when the replica is provisioned in a region that supports availability zones.
Follow the steps below to create a zone-redundant replica for a container registry that uses the Premium service tier. If you don't have one already, follow the steps in Create a zone-redundant registry in Azure Container Registry.
To create a zone-redundant replica, use Azure portal, Azure CLI, or a Bicep file.
Sign in to the Azure portal.
Go to your Premium tier container registry. In the service menu, under Services, select Geo-replications.
On the map that appears, do one of the following:
In the Create replication window, confirm the Location.
In Use availability zones, select Enabled, and then select Create.
Make sure that you have the latest version of Azure CLI. If you need to install or upgrade, see Install Azure CLI.
Create zone-redundant replication by running az acr replication create, replacing <resource-group-name>, <container-registry-name>, and <replica-region> with your own values:
az acr replication create \
--location <region-name> \
--resource-group <resource-group-name> \
--registry <container-registry-name> \
--zone-redundancy enabled
In the command output, note the zoneRedundancy property for the replica. When zoneRedundancy is set to "Enabled", the registry is zone redundant.
To create a geo-replica for your existing registry, copy the following Bicep template to a new file and save it using a filename such as replicaZone.bicep. By default, the template enables zone redundancy for the regional replica.
@description('Globally unique name of your Azure Container Registry')
param containerRegistryName string
@description('Short name for registry replica location, such as australiaeast or westus.')
param replicaLocation string
@description('Enable zone redundancy of registry replica. Requires replica location to support availability zones.')
@allowed([
'Enabled'
'Disabled'
])
param replicaZoneRedundancy string = 'Enabled'
resource containerRegistry 'Microsoft.ContainerRegistry/registries@2025-04-01' existing = {
name: containerRegistryName
}
resource containerRegistryReplica 'Microsoft.ContainerRegistry/registries/replications@2025-04-01' = {
parent: containerRegistry
name: replicaLocation
location: replicaLocation
properties: {
zoneRedundancy: replicaZoneRedundancy
}
}
Run az deployment group create to create the registry using the template file you saved, replacing <resource-group-name>, <registry-name>, and <replica-location> with your values.
az deployment group create \
--resource-group <resource-group-name> \
--template-file replicaZone.bicep \
--parameters containerRegistryName=<registry-name> replicaLocation=<replica-location>