Azure Container Registry SKUs
Azure Container Registry (ACR) is available in multiple service tiers, known as SKUs. These SKUs provide predictable pricing and several options for aligning to the capacity and usage patterns of your private Docker registry in Azure.
|Basic||Yes||A cost-optimized entry point for developers learning about Azure Container Registry. Basic registries have the same programmatic capabilities as Standard and Premium (Azure Active Directory authentication integration, image deletion, and web hooks). However, the included storage and image throughput are most appropriate for lower usage scenarios.|
|Standard||Yes||Standard registries offer the same capabilities as Basic, with increased included storage and image throughput. Standard registries should satisfy the needs of most production scenarios.|
|Premium||Yes||Premium registries provide the highest amount of included storage and concurrent operations, enabling high-volume scenarios. In addition to higher image throughput, Premium adds features like geo-replication for managing a single registry across multiple regions, and content trust (preview) for image tag signing.|
|Classic1||No||This SKU enabled the initial release of the Azure Container Registry service in Azure. Classic registries are backed by a storage account that Azure creates in your subscription, which limits the ability for ACR to provide higher-level capabilities such as increased throughput and geo-replication.|
1 The Classic SKU will be deprecated in March 2019. Use Basic, Standard, or Premium for all new container registries.
Choosing a higher-level SKU provides more performance and scale, however, all managed SKUs provide the same programmatic capabilities. With multiple service tiers, you can get started with Basic, then convert to Standard and Premium as your registry usage increases.
Managed vs. unmanaged
The Basic, Standard, and Premium SKUs are collectively known as managed registries, and Classic registries as unmanaged. The primary difference between the two is how your container images are stored.
Managed (Basic, Standard, Premium)
Managed registries benefit from image storage managed entirely by Azure. That is, a storage account that stores your images does not appear within your Azure subscription. There are several benefits gained by using one of the managed registry SKUs, discussed in-depth in Container image storage in Azure Container Registry. This article focuses on the managed registry SKUs and their capabilities.
The Classic SKU is being deprecated, and will be unavailable after March 2019. Use Basic, Standard, or Premium for all new registries.
Classic registries are "unmanaged" in the sense that the storage account that backs a Classic registry resides within your Azure subscription. As such, you are responsible for the management of the storage account in which your container images are stored. With unmanaged registries, you can't switch between SKUs as your needs change (other than upgrading to a managed registry), and several features of managed registries are unavailable (for example, container image deletion, geo-replication, and webhooks).
For more information about upgrading a Classic registry to one of the managed SKUs, see Upgrade a Classic registry.
SKU feature matrix
The following table details the features and limits of the Basic, Standard, and Premium service tiers.
|Storage1||10 GiB||100 GiB||500 GiB|
|Max image layer size||20 GiB||20 GiB||50 GiB|
|ReadOps per minute2, 3||1,000||3,000||10,000|
|WriteOps per minute2, 4||100||500||2,000|
|Download bandwidth MBps2||30||60||100|
|Upload bandwidth MBps2||10||20||50|
|Content trust (preview)||N/A||N/A||Supported|
1 The specified storage limits are the amount of included storage for each tier. You're charged an additional daily rate per GiB for image storage above these limits. For rate information, see Container Registry pricing.
2 ReadOps, WriteOps, and Bandwidth are minimum estimates. ACR strives to improve performance as usage requires.
3 docker pull translates to multiple read operations based on the number of layers in the image, plus the manifest retrieval.
4 docker push translates to multiple write operations, based on the number of layers that must be pushed. A
docker push includes ReadOps to retrieve a manifest for an existing image.
You can change a registry's SKU with the Azure CLI or in the Azure portal. You can move freely between managed SKUs as long as the SKU you're switching to has the required maximum storage capacity. If you switch to one of the managed SKUs from Classic, you cannot move back to Classic--it is a one-way conversion.
To move between SKUs in the Azure CLI, use the az acr update command. For example, to switch to Premium:
az acr update --name myregistry --sku Premium
In the container registry Overview in the Azure portal, select Update, then select a new SKU from the SKU drop-down.
Changing from Classic
There are additional considerations to take into account when migrating an unmanaged Classic registry to one of the managed Basic, Standard, or Premium SKUs. If your Classic registry contains a large number of images and is many gigabytes in size, the migration process can take some time. Additionally,
docker push operations are disabled until the migration is complete.
For details on upgrading your Classic registry to one of the managed SKUs, see Upgrade a Classic container registry.
For pricing information on each of the Azure Container Registry SKUs, see Container Registry pricing.
For details about pricing for data transfers, see Bandwidth Pricing Details.
Azure Container Registry Roadmap
Visit the ACR Roadmap on GitHub to find information about upcoming features in the service.
Azure Container Registry UserVoice
Submit and vote on new feature suggestions in ACR UserVoice.
We'd love to hear your thoughts. Choose the type you'd like to provide:
Our feedback system is built on GitHub Issues. Read more on our blog.