Container image formats

Container Registry supports the following container image formats:

Docker V2

Docker V2 image manifest is a specification for container images that allows multi-architecture images and supports content-addressable images.

Docker V2 images supersede Docker V1 images, which are deprecated.

Manifest lists

Manifest lists are part of the Docker V2, Schema 2 and OCI images.

Manifest lists allow a single digest or tag to represent multiple forms of an image.

OCI format

The OCI format is a specification for container images based on the Docker Image Manifest Version 2, Schema 2 format. Container Registry supports pushing and pulling OCI images.

Image indexes

Image indexes are the equivalent of manifest lists in OCI images.

Like manifest lists, an image index manifest refers to multiple image manifests. Image indexes are useful for multi-platform images.

Deprecation of Docker V1 image format

As of February 28, 2017, the Docker V2 registry specification replaced the Docker V1 specification. The Docker V1 specification is deprecated, and Docker V1 images cannot be used with Container Registry.

Docker V2 made a set of changes to the Docker image format to allow for content-addressable images and to remove complexity in tracking image layers. Docker V2 image manifests contain all the content addresses ("digests") of the image’s layers, whereas Docker V1 images did not.

For more information, refer to Deprecation Notices.

Upgrading Docker V1 images to Docker V2 images

To upgrade your V1 images to V2 images, ensure that Docker v1.6 or higher is installed. Then, run the following commands to pull and then re-push the images to Container Registry:

docker pull gcr.io/[your-project-id]/[image]:[tag]
docker push gcr.io/[your-project-id]/[image]:[tag]