For example, use the Import-AzContainerRegistryImage command to import the multi-architecture hello-world:latest image from Docker Hub to a registry named myregistry. Because hello-world is an official image from Docker Hub, this image is in the default library repository. Download rate limit. Estimated reading time: 5 minutes. What is the download rate limit on Docker Hub. Docker Hub limits the number of Docker image downloads (“pulls”) based on the account type of the user pulling the image. See the pricing page for current options. Some images are unlimited through our Open Source and Publisher programs. In order t o make push images into a registry. Docker image and executing the pull command to download only them. Re-tag images and Push then up. Go Templates in the docker images.
If you are using a supported OS other than Ubuntu, to download the Docker image, complete the following steps: Install the IBM Cloud CLI by following the steps in the Install from shell section. Verify the Installation by running help command. Install the IBM Cloud Container Registry plugin. Running the Distribution service. The Distribution project has been packaged as an Official Image on Docker Hub. To run a version locally, execute the following command: $ docker run -d -p 5000:5000 -name registry registry:2.7. The -d flag will run the container in detached mode. The -p flag publishes port 5000 on your local machine’s network.
You can easily import (copy) container images to an Azure container registry, without using Docker commands. For example, import images from a development registry to a production registry, or copy base images from a public registry.
Azure Container Registry handles a number of common scenarios to copy images and other artifacts from an existing registry:
Import images from a public registry
Import images or OCI artifacts including Helm 3 charts from another Azure container registry, in the same or a different Azure subscription or tenant
Import from a non-Azure private container registry
Image import into an Azure container registry has the following benefits over using Docker CLI commands:
Because your client environment doesn't need a local Docker installation, import any container image, regardless of the supported OS type.
When you import multi-architecture images (such as official Docker images), images for all architectures and platforms specified in the manifest list get copied.
Access to the target registry doesn't have to use the registry's public endpoint.
Limitations
- The maximum number of manifests for an imported image is 50.
- The maximum layer size for an image imported from a public registry is 2 GiB.
To import container images, this article requires that you run the Azure CLI in Azure Cloud Shell or locally (version 2.0.55 or later recommended). Run az --version
to find the version. If you need to install or upgrade, see Install Azure CLI.
To import container images, this article requires that you run Azure PowerShell in Azure Cloud Shell or locally (version 5.9.0 or later recommended). Run Get-InstalledModule -Name Az
to find the version. If you need to install or upgrade, see Install the Azure Az PowerShell module.
Note
If you need to distribute identical container images across multiple Azure regions, Azure Container Registry also supports geo-replication. By geo-replicating a registry (Premium service tier required), you can serve multiple regions with identical image and tag names from a single registry.
Important
Changes to image import between two Azure container registries have been introduced as of January 2021:
- Import to or from a network-restricted Azure container registry requires the restricted registry to allow access by trusted services to bypass the network. By default, the setting is enabled, allowing import. If the setting isn't enabled in a newly created registry with a private endpoint or with registry firewall rules, import will fail.
- In an existing network-restricted Azure container registry that is used as an import source or target, enabling this network security feature is optional but recommended.
Prerequisites
If you don't already have an Azure container registry, create a registry. For steps, see Quickstart: Create a private container registry using the Azure CLI.
If you don't already have an Azure container registry, create a registry. For steps, see Quickstart: Create a private container registry using Azure PowerShell.
To import an image to an Azure container registry, your identity must have write permissions to the target registry (at least Contributor role, or a custom role that allows the importImage action). See Azure Container Registry roles and permissions.
Import from a public registry
Import from Docker Hub
For example, use the az acr import command to import the multi-architecture hello-world:latest
image from Docker Hub to a registry named myregistry. Because hello-world
is an official image from Docker Hub, this image is in the default library
repository. Include the repository name and optionally a tag in the value of the --source
image parameter. (You can optionally identify an image by its manifest digest instead of by tag, which guarantees a particular version of an image.)
You can verify that multiple manifests are associated with this image by running the az acr repository show-manifests
command:
If you have a Docker Hub account, we recommend that you use the credentials when importing an image from Docker Hub. Pass the Docker Hub user name and the password or a personal access token as parameters to az acr import
. The following example imports a public image from the tensorflow
repository in Docker Hub, using Docker Hub credentials:
For example, use the Import-AzContainerRegistryImage command to import the multi-architecture hello-world:latest
image from Docker Hub to a registry named myregistry. Because hello-world
is an official image from Docker Hub, this image is in the default library
repository. Include the repository name and optionally a tag in the value of the -SourceImage
parameter. (You can optionally identify an image by its manifest digest instead of by tag, which guarantees a particular version of an image.)
You can verify that multiple manifests are associated with this image by running the Get-AzContainerRegistryManifest
cmdlet:
If you have a Docker Hub account, we recommend that you use the credentials when importing an image from Docker Hub. Pass the Docker Hub user name and the password or a personal access token as parameters to Import-AzContainerRegistryImage
. The following example imports a public image from the tensorflow
repository in Docker Hub, using Docker Hub credentials:
Import from Microsoft Container Registry
For example, import the ltsc2019
Windows Server Core image from the windows
repository in Microsoft Container Registry.
Import from an Azure container registry in the same AD tenant
You can import an image from an Azure container registry in the same AD tenant using integrated Azure Active Directory permissions.
Your identity must have Azure Active Directory permissions to read from the source registry (Reader role) and to import to the target registry (Contributor role, or a custom role that allows the importImage action).
The registry can be in the same or a different Azure subscription in the same Active Directory tenant.
Public access to the source registry may be disabled. If public access is disabled, specify the source registry by resource ID instead of by registry login server name.
If the source registry and/or the target registry has a private endpoint or registry firewall rules are applied, ensure that the restricted registry allows trusted services to access the network.
Import from a registry in the same subscription
For example, import the aci-helloworld:latest
image from a source registry mysourceregistry to myregistry in the same Azure subscription.
The following example imports the aci-helloworld:latest
image to myregistry from a source registry mysourceregistry in which access to the registry's public endpoint is disabled. Supply the resource ID of the source registry with the --registry
parameter. Notice that the --source
parameter specifies only the source repository and tag, not the registry login server name.
The following example imports an image by manifest digest (SHA-256 hash, represented as sha256:...
) instead of by tag:
The following example imports the aci-helloworld:latest
image to myregistry from a source registry mysourceregistry in which access to the registry's public endpoint is disabled. Supply the resource ID of the source registry with the --registry
parameter. Notice that the --source
parameter specifies only the source repository and tag, not the registry login server name.
The following example imports an image by manifest digest (SHA-256 hash, represented as sha256:...
) instead of by tag:
Import from a registry in a different subscription
In the following example, mysourceregistry is in a different subscription from myregistry in the same Active Directory tenant. Supply the resource ID of the source registry with the --registry
parameter. Notice that the --source
parameter specifies only the source repository and tag, not the registry login server name.
In the following example, mysourceregistry is in a different subscription from myregistry in the same Active Directory tenant. Supply the resource ID of the source registry with the --registry
parameter. Notice that the --source
parameter specifies only the source repository and tag, not the registry login server name.
Import from a registry using service principal credentials
To import from a registry that you can't access using integrated Active Directory permissions, you can use service principal credentials (if available) to the source registry. Supply the appID and password of an Active Directory service principal that has ACRPull access to the source registry. Using a service principal is useful for build systems and other unattended systems that need to import images to your registry.
Import from an Azure container registry in a different AD tenant
To import from an Azure container registry in a different Azure Active Directory tenant, specify the source registry by login server name, and provide credentials that enable pull access to the registry.
Cross-tenant import with username and password
For example, use a repository-scoped token and password, or the appID and password of an Active Directory service principal that has ACRPull access to the source registry.
Cross-tenant import with access token
To access the source registry using an identity in the source tenant that has registry permissions, you can get an access token:
In the target tenant, pass the access token as a password to the az acr import
command. The source registry is specified by login server name. Notice that no username is needed in this command:
In the target tenant, pass the access token as a password to the Import-AzContainerRegistryImage
cmdlet. The source registry is specified by login server name. Notice that no username is needed in this command:
Import from a non-Azure private container registry

Import an image from a non-Azure private registry by specifying credentials that enable pull access to the registry. For example, pull an image from a private Docker registry:
Next steps
In this article, you learned about importing container images to an Azure container registry from a public registry or another private registry.
- For additional image import options, see the az acr import command reference.
- For additional image import options, see the Import-AzContainerRegistryImage cmdlet reference.
Image import can help you move content to a container registry in a different Azure region, subscription, or Azure AD tenant. For more information, see Manually move a container registry to another region.
Learn how to disable artifact export from a network-restricted container registry.
Estimated reading time: 4 minutes
This page contains information about hosting your own registry using theopen source Docker Registry. For information about Docker Hub, which offers ahosted registry with additional features such as teams, organizations, webhooks, automated builds, etc, see Docker Hub.
Use-case
If you have multiple instances of Docker running in your environment, such asmultiple physical or virtual machines all running Docker, each daemon goes outto the internet and fetches an image it doesn’t have locally, from the Dockerrepository. You can run a local registry mirror and point all your daemonsthere, to avoid this extra internet traffic.
Note
Docker Official Images are an intellectual property of Docker. Distributing Docker Official Images to third parties without a prior agreement can constitute a violation of Docker Terms of Service.
Alternatives
Alternatively, if the set of images you are using is well delimited, you cansimply pull them manually and push them to a simple, local, private registry.
Furthermore, if your images are all built in-house, not using the Hub at all andrelying entirely on your local registry is the simplest scenario.
Gotcha
It’s currently not possible to mirror another private registry. Only the centralHub can be mirrored.
Note
Mirrors of Docker Hub are still subject to Docker’s fair usage policy.
Solution
The Registry can be configured as a pull through cache. In this mode a Registryresponds to all normal docker pull requests but stores all content locally.
How does it work?
The first time you request an image from your local registry mirror, it pullsthe image from the public Docker registry and stores it locally before handingit back to you. On subsequent requests, the local registry mirror is able toserve the image from its own storage.
What if the content changes on the Hub?
When a pull is attempted with a tag, the Registry checks the remote toensure if it has the latest version of the requested content. Otherwise, itfetches and caches the latest content.
Docker Download Image From Registry
What about my disk?
In environments with high churn rates, stale data can build up in the cache.When running as a pull through cache the Registry periodically removes oldcontent to save disk space. Subsequent requests for removed content causes aremote fetch and local re-caching.
To ensure best performance and guarantee correctness the Registry cache shouldbe configured to use the filesystem
driver for storage.
Run a Registry as a pull-through cache
The easiest way to run a registry as a pull through cache is to run the officialRegistry image.At least, you need to specify proxy.remoteurl
within /etc/docker/registry/config.yml
as described in the following subsection.
Multiple registry caches can be deployed over the same back-end. A singleregistry cache ensures that concurrent requests do not pull duplicate data,but this property does not hold true for a registry cache cluster.
Note
Service accounts included in the Team plan are limited to 5,000 pulls per day. See Service Accounts for more details.
Configure the cache
To configure a Registry to run as a pull through cache, the addition of aproxy
section is required to the config file.
Docker Download Image From Registry Manager
To access private images on the Docker Hub, a username and password canbe supplied.
Warning: If you specify a username and password, it’s very important tounderstand that private resources that this user has access to Docker Hub ismade available on your mirror. You must secure your mirror byimplementing authentication if you expect these resources to stay private!
Warning: For the scheduler to clean up old entries, delete
mustbe enabled in the registry configuration. SeeRegistry Configuration for more details.
Download Docker Image From Azure Container Registry
Configure the Docker daemon
Either pass the --registry-mirror
option when starting dockerd
manually,or edit /etc/docker/daemon.json
and add the registry-mirrors
key and value, to make the change persistent.
Save the file and reload Docker for the change to take effect.
Some log messages that appear to be errors are actually informational messages.
Check the level
field to determine whetherthe message is warning you about an error or is giving you information.For example, this log message is informational:
It’s telling you that the file doesn’t exist yet in the local cache and isbeing pulled from upstream.
registry, on-prem, images, tags, repository, distribution, mirror, Hub, recipe, advanced