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, there are size and usage constraints.|
|Standard||Yes||Standard registries offer the same capabilities as Basic, with increased storage limits and image throughput. Standard registries should satisfy the needs of most production scenarios.|
|Premium||Yes||Premium registries provide higher limits on constraints such as storage and concurrent operations, enabling high-volume scenarios. In addition to higher image throughput capacity, Premium adds features like geo-replication for managing a single registry across multiple regions, maintaining a network-close registry to each deployment.|
|Classic||No||The Classic registry 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. Because of its limited capabilities, we plan to deprecate the Classic SKU in the future.|
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.
Because of the planned deprecation of the Classic registry SKU, we recommend you use Basic, Standard, or Premium for all new registries. For information about converting your existing Classic registry, see Upgrade a Classic registry.
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.
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.
|Storage||10 GiB||100 GiB||500 GiB|
|Max image layer size||20 GiB||20 GiB||50 GiB|
|ReadOps per minute1, 2||1,000||3,000||10,000|
|WriteOps per minute1, 3||100||500||2,000|
|Download bandwidth MBps1||30||60||100|
|Upload bandwidth MBps1||10||20||50|
1 ReadOps, WriteOps, and Bandwidth are minimum estimates. ACR strives to improve performance as usage requires.
2 docker pull translates to multiple read operations based on the number of layers in the image, plus the manifest retrieval.
3 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.
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.