Container Registry is deprecated. Effective March 18, 2025, Container Registry is shut down and writing images to Container Registry is unavailable.
gcr.io
URLs hosted on Artifact Registry, including Google-owned images
with gcr.io
URLs, are not affected by the Container Registry shutdown.
For more details about the Container Registry deprecation and how to migrate to Artifact Registry, see Container Registry deprecation .
Artifact Registry is the recommended service for container image storage and management on Google Cloud. Artifact Registry provides the same container management features as Container Registry and includes additional features and benefits. As a fully-managed service with support for both container images and non-container artifacts, Artifact Registry extends the capabilities of Container Registry.
Summary of new features
Artifact Registry extends the capabilities of Container Registry with the following features:
- Repository-level access control .
- Hosting artifacts in regions to reduce latency and data transfer costs, and to comply with data residency requirements.
- Streaming images to Google Kubernetes Engine and Google Cloud Serverless for Apache Spark to reduce workload startup times.
- Deploying to Cloud Run from source .
- Audit logging for repository activity.
- Enforcement of organization policy, including encryption with customer-managed encryption keys (CMEK) and location constraints .
- Scanning for OS and language package vulnerabilities in containers.
- Virtual repositories that aggregate multiple repositories behind a single host.
- Remote repositories that cache artifacts from upstream sources such as Docker Hub or Maven Central.
See the feature comparison for more details about these features.
Existing Container Registry images maintained by Google
Most Google-owned images previously hosted on Container Registry are now hosted
on Artifact Registry in gcr.io
repositories. You don't need to change
the URLs to pull these images. For example, you can still use the Cloud Build official builder images
.
Cached Docker Hub images on mirror.gcr.io
Artifact Registry caches frequently-accessed public Docker Hub images on mirror.gcr.io
. For more information on using mirror.gcr.io
, see Pull cached Docker Hub images
.
Feature comparison
The following table summarizes differences between Container Registry and Artifact Registry.
gcr.io
pkg.dev
Artifact Registry can also store images for the gcr.io
domain if
you set up gcr.io repositories
.
- Standard : Stores your artifacts.
- Remote : Caches artifacts requested from an upstream source such as Docker Hub.
- Virtual : Single endpoint multiple upstream repositories.
Container Registry stores images in Cloud Storage buckets in your Google Cloud project and actions such as granting registry-specific permissions must be applied directly to a bucket.
- For backwards compatibility, you can set up gcr.io repositories
. The initial setup
includes automatic creation of Artifact Registry repositories for each
Container Registry host in your project and redirection of
gcr.ioto the corresponding Artifact Registry repositories. - For all push and pull requests to the
pkg.devdomain, the repository must already exist.
In Artifact Registry, there are no Cloud Storage buckets to manage in your Google Cloud projects. You perform image management actions directly on a repository.
- Grant access using Cloud Storage roles.
- You can restrict access to all images stored in a multi-region, but
not individual repositories. For example, you can restrict access to
us.gcr.ioin the projectmy-project, but you cannot grant specific permissions for images underus.gcr.io/my-project/team1andus.gcr.io/my-project/team2
- Grant access using Artifact Registry roles .
- You can restrict access
to individual repositories. For example, you can separately control
access to images in
us-docker.pkg.dev/my-project/team1andus-docker.pkg.dev/my-project/team2 - Grant conditional access with IAM and repository tags
If you click a Container Registry repository, you are directed to the list of images in the Container Registry section of the Google Cloud console.
gcloud container images
commands. Commands support shortened digests. If you don't specify the
full digest string, Container Registry attempts to locate the correct image
based on the partial string. There is no REST or RPC API for Container Registry.
gcloud artifacts docker
commands. Commands don't support shortened digests. For a comparison of Container Registry and Artifact Registry gcloud CLI commands, see the gcloud CLI command comparison .
Artifact Registry provides a REST and RPC API for managing repositories and artifacts.
gcr
topic.gcr
topic. If you create repositories
in the same project as your existing Container Registry service, your
existing Pub/Sub configuration works automatically. To learn more, see Configuring Pub/Sub notifications .
mirror.gcr.io
is a pull-through cache
that stores
the most frequently requested Docker Hub images across all users. mirror.gcr.io
is in now
hosted on Artifact Registry.mirror.gcr.io
is in now
hosted on Artifact Registry. No action is required unless you are using mirror.gcr.io
in a VPC Service Controls perimeter. For more
information on using mirror.gcr.io
in a VPC Service Controls
perimeter, see Use Artifact Registry with VPC Service Controls
.- On-demand scanning
-
- The Google Cloud CLI command gcloud artifacts docker images scan scans for vulnerabilities in local images or images in the Container Registry.
- The Google Cloud CLI command gcloud artifacts docker images list-vulnerabilities returns vulnerability scanning results.
- Scans return OS and language package vulnerability information for images in Container Registry with supported operating systems .
- Automatic scanning
-
- The Google Cloud CLI command gcloud container images includes flags for viewing scan results, including vulnerabilities and other metadata.
- Scans only return OS vulnerability information for images in Container Registry with supported operating systems .
- On-demand scanning
-
- The Google Cloud CLI command gcloud artifacts docker images scan scans for vulnerabilities in local images or images in the Artifact Registry.
- The Google Cloud CLI command gcloud artifacts docker images list-vulnerabilities returns vulnerability scanning results.
- Scans return OS and language package vulnerability information for images in Artifact Registry with supported operating systems .
- Automatic scanning
-
- The Google Cloud CLI command gcloud artifacts docker images includes flags for viewing scan results, including vulnerabilities and other metadata.
- Scans return OS vulnerability information for images in Artifact Registry with supported operating systems and language package vulnerability information for both supported and unsupported operating systems.
gcloud command comparison
The following table summarizes Container Registry commands and the equivalent Artifact Registry commands in the gcloud CLI. Click a link in the table to view reference page for the command.
The table does not include all available Artifact Registry commands that
have no equivalent in Container Registry. See the gcloud artifacts
documentation for the full Artifact Registry command reference.
| Operation | Container Registry | Artifact Registry |
|---|---|---|
|
Create a repository
|
Not applicable. | gcloud artifacts repositories create
|
|
Delete a repository
|
Not applicable. | gcloud artifacts repositories delete
|
|
List images
|
gcloud container images list
|
gcloud artifacts docker images list
|
|
List tags
|
gcloud container images list-tags
|
gcloud artifacts docker tags list
|
|
Add a tag
|
gcloud container images add-tag
|
gcloud artifacts docker tags add
|
|
Delete a tag
|
gcloud container images untag
|
gcloud artifacts docker tags delete
|
|
Describe images
|
gcloud container images describe
|
gcloud artifacts docker images list --include-tags
|

