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 how you wish to use your private Docker registry in Azure. Choosing a higher-level SKU provides more performance and scale. However, all SKUs provide the same programmatic capabilities, enabling a developer to get started with Basic, and convert to Standard and Premium as registry usage increases.

Basic

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

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

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

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.

Note

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 Changing SKUs.

Registry SKU feature matrix

The following table details the features and limits of the Basic, Standard, and Premium service tiers.

Resource Basic Standard Premium
Storage 10 GiB 100 GiB 500 GiB
ReadOps per minute1, 2 1k 300k 10,000k
WriteOps per minute1, 3 100 500 2k
Download bandwidth MBps1 30 60 100
Upload bandwidth MBps1 10 20 50
Webhooks 2 10 100
Geo-replication N/A N/A Supported (preview)

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.

Manage registry size

The storage constraints of each SKU are intended to align with a typical scenario: Basic for getting started, Standard for the majority of production apps, and Premium for hyper-scale performance and geo-replication. Throughout the life of your registry, you should manage its size by periodically deleting unused content.

You can find the current usage of a registry in the container registry Overview in the Azure portal:

Registry usage information in the Azure portal

You can manage the size of your registry by deleting repositories in the Azure portal.

Under SERVICES, select Repositories, then right-click the repository you want to delete, then select Delete.

Delete a repository in the Azure portal

Changing SKUs

You can change a registry's SKU in the Azure portal.

In the registry Overview in the Azure portal, select Update, then select a new SKU from the SKU drop-down.

Update container registry SKU in Azure portal

Changing from Classic

When you change a Classic registry to Basic, Standard, or Premium, Azure copies existing container images from the associated storage account in your subscription to a storage account managed by Azure. This process can take some time.

During conversion, docker pull continues to function, however, docker push is blocked until conversion is complete.

Once completed, the subscription storage account is no longer used by ACR.

Why change from Classic to Basic, Standard, or Premium?

Because of the limited capabilities of Classic registries, we recommend that you change your Classic registries to Basic, Standard, or Premium tiers. These higher-level SKUs more deeply integrate the registry into the capabilities of Azure. Some of these capabilities include:

Most of all, a Classic registry depends on the storage account that Azure automatically provisioned in your Azure subscription when you created the registry. By contrast, the Basic, Standard, and Premium SKUs take advantage of managed storage. That is, Azure transparently manages the storage of your images for you--a separate storage account is not created in your own subscription.

Some of the benefits of managed storage provided by Basic, Standard, and Premium registries:

  • Container images are encrypted at rest.
  • Images are stored using geo-redundant storage, assuring backup of your images with multi-region replication.
  • Ability to move to between SKUs, enabling higher throughput when you choose a higher-level SKU. With each SKU, ACR can meet your throughput requirements as your needs increase. The underlying implementation of how ACR achieves the desired throughput is expressed as intent (by selecting higher SKUs), without you having to manage the details of the implementation.

Pricing

For pricing information on each of the Azure Container Registry SKUs, see Container Registry pricing.

Next steps

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.