A Docker registry is a repository for managing Docker images. The registry is a service of its own and not part of the Docker engine.
The registry has a similar usage to repository managers like Artifactory or Nexus, with one big difference: a repository manager will usually be able to manage repositories for different types of technologies, for example: Maven, NPM, Ruby Gems, CocoaPods, Git LFS, Python Eggs and others. A pure Docker registry will only manage Docker images.
There are couple of things you should take into consideration when choosing a tool for managing your Docker registry:
- Performance - Docker images can be big. In a CI/CD environment generating large numbers of Docker images a day you need a tool that will able to deal with the load and scale as you grow. Some tools offers a clustered (HA) version which allows spreading the load between multiple nodes.
- Storage management - Docker images consumes a lot of storage space. It is better to choose a tools which manages the required storage efficiently:
- Supports deduplication of image layers between images and repositories
- Efficiently cleans of unused image layers (garbage collection). Notice that some tools offers a stop the world GC mechanism which hurts performance.
- Offers cleanup procedures/mechanisms for images which allows deleting images based on age, usage etc.
- Supports multiple storage backends - file system, object storage
- Support for multiple registries - some tools limits you to managing a single registry while other allows managing multiple registries in parallel. This is useful when you need to separate between snapshots and production ready images.
- Support for the latest Docker version - the Docker registry API and manifests format are changing often. Make sure you choose a tool which supports all the latest changes.
- Universal - If you need to manage more than Docker images, which is usually the case since you also use tools like NPM, Bower, Yum and others which also requires a registry, choose a universal repository manager which supports such technologies.
- Enterprise ready - look for a tool which is enterprise ready with support for features such a LDAP connectivity, role based access control, high availability, multi site development etc.
Disclaimer: I work for JFrog the company behind Artifactory