Skip to content

Docker Registry 2.1

Compare
Choose a tag to compare
@RichardScothern RichardScothern released this 11 Aug 23:40
· 4132 commits to main since this release
v2.1.0

The Docker Registry 2.1 release brings some major new features to the Docker Registry along with numerous bug fixes, documentation enhancements and logging improvements. More than 150 pull requests were completed by more than 50 contributors.

What’s new?

Support for listing Registry repositories
A specification and implementation of the catalog API allows users to list the contents of a Registry

Manifest and layer soft deletion
Manifests and layers can now be deleted by reference.

Pull through caching (experimental)
The Registry can now act as a pull through cache, proxying content from the Docker Hub.

Storage Drivers
The following storage drivers were contributed to the distribution project by members of the open source community.

Aliyun OSS. Open Storage Service (OSS) is a massive, secure and highly reliable cloud storage service provided by Aliyun.

Ceph. Ceph is a free software storage platform designed to present object, block, and file storage from a single distributed computer cluster.

Openstack Swift. Swift is a highly available, distributed, eventually consistent object/blob store from Openstack.

And many more...

  • API specification clarifications
  • Etag support for layers and manifests
  • htpasswd support with bcrypt
  • Unix socket support
  • Client disconnection detection
  • A slimmer official image
  • Faster push for multi-tagged images

Things to pay close attention to if you are upgrading

If you are running multiple registries behind a load balancer, you need to make sure that you explicitly specified the same secret for all nodes as per the configuration documentation (commit).

The Length field in the Notification JSON is being deprecated in favor of Size. Both are supported in this release (commit).

The location of the config file inside the official image has changed. If you previously mounted an external configuration file with a volume, you need to update the location to /etc/docker/registry/config.yml