Artifact Registry is the evolution of Container Registry. As a fully-managed service with support for both container images and non-container artifacts, Artifact Registry will eventually replace Container Registry.
If you currently use Container Registry, use the information on this page to learn about transitioning to Artifact Registry.
When Artifact Registry is generally available, it will provide the same container management features as Container Registry. During the beta period, you can start transitioning your automation to use Artifact Registry for your containers.
Backwards compatibility and co-existence
You can use both Artifact Registry and Container Registry in the same
project. When you view a list of repositories with
Cloud Console, Artifact Registry also lists Container Registry
repositories in the same project.
Both services will co-exist for a minimum of 6 months after Artifact Registry becomes generally available. This period provides time for you to transition your containers and your automation to Artifact Registry. Eventually Artifact Registry will replace Container Registry.
After Artifact Registry becomes generally available, you will have an option to create backwards-compatible repositories. These repositories can help you perform a more gradual update to your automation for builds and deployments with support for:
gcloud container imagescommands
- Referencing the repository with a
To provide compatibility, these repositories will have some feature limitations. In particular, each backwards-compatible repository must be located in the same multi-region as a corresponding Container Registry hostname in your project.
Setting up repositories
In Artifact Registry you must create repositories before you can push images to them. So a key part of moving to Artifact Registry is setting up Artifact Registry repositories and integrating them into your CI/CD automation.
To provide greater flexibility, there are some changes in how Artifact Registry represents repositories.
- Container Registry
Each multi-regional location is associated with a single storage bucket. Organizing your images into repositories under a hostname is optional. Consider the following example that shows the image
webappin three locations:
us.gcr.io/my-project/webapp us.gcr.io/my-project/team1/webapp us.gcr.io/my-project/team2/webapp
Repositories are only an organizing mechanism and do not restrict access. Any user with access to the storage bucket for
us.gcr.ioin this project can access all versions of the
- Artifact Registry
Each repository is a separate resource in your project. Since each repository is a unique resource, you can:
- Give each repository a name, description, and labels
- Create multiple repositories in the same location
- Configure repository-specific permissions
In addition, the location of a repository can be a region or a multi-region.
These changes give you more control over your repositories. For example, if you have teams in São Paulo and Sydney, you can create a repository for each team in a region that is geographically closer than the nearest multi-regional location.
You can then grant each team with permissions to their team repository only.
See the setup guide for instructions to transition to Artifact Registry.
This section summarizes changes and improvements to Container Registry features. See Feature availability for additional information about features available during the beta period.
|Feature||Container Registry||Artifact Registry|
|Supported formats||Container images only||Multiple artifact formats, including container images, Java packages and Node.js modules.|
|Hostnames||Hosts are on the
||Hosts are on the
|Authentication||Provides several authentication methods for pushing and pulling images with a third-party client.||Artifact Registry supports the same authentication
methods as Container Registry. See Setting up authentication for Docker for details.
If you use the Docker credential helper, version 2.0.0 or newer is required. Docker client versions prior to v18.03 are no longer supported.
|Customer-managed encryption keys (CMEK)||Use CMEK to encrypt the storage buckets that contain your images.||Use CMEK to encrypt individual repositories.|
|Using Google Cloud Console||View and manage Container Registry images from the Container Registry section of Cloud Console.||View a list of your Artifact Registry and Container Registry
repositories in the Artifact Registry
section of Cloud Console. Manage your Artifact Registry
repositories and images from this page.
If you click a Container Registry repository, you are directed to the list of images in the Container Registry section of the Cloud Console.
|Using gcloud and API commands||Uses gcloud container images commands.||Uses gcloud artifacts docker commands.
After Artifact Registry becomes generally available, Artifact Registry
will provide an option to create backwards-compatible repositories that
For a comparison of Container Registry and Artifact Registry gcloud commands, see the gcloud command comparison.
Artifact Registry also includes an API for managing repositories and artifacts in all formats.
|Pub/Sub notifications||Publishes changes to the
||Publishes changes to the
To learn more, see Configuring Pub/Sub notifications.
|Cached Docker Hub images||Caches
the most frequently requested Docker Hub images on
|VPC Service Controls||You can add Container Registry to a service perimeter.||You can add Artifact Registry to a service perimeter.|
|Pricing||Container Registry pricing is based on Cloud Storage usage, including storage and network egress.||Artifact Registry has its own pricing, based on storage and network egress.|
The following Container Registry features are not currently available in the Artifact Registry beta release. This page will be updated for changes in feature availability.
Refer to this page and the release notes for any feature updates during the beta period.
- Container Analysis and vulnerability scanning
- Integration with Binary Authorization
- Integration with Container-Optimized OS
- Google-provided containers are still hosted on
gcr.io. Examples of hosted containers include: