Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Docker Registry vs Nexus/Artifactory

Is the 'Docker registry' in Docker engine similar to Nexus/Artifactory? What are the similarities and differences between them? If we already have Nexus, can we use it as an alternative to Docker registry and plug it into the Docker engine?

Could someone help me clear this?

like image 765
Sri Avatar asked Dec 12 '16 19:12

Sri


People also ask

Is Nexus a Docker registry?

Simplified Container Management for Docker, Helm, and Kubernetes. Introducing Nexus as a Container Registry! Built on extensive enterprise storage capabilities, Nexus Repository is a robust package registry for all of your Docker images and Helm Chart repositories.

Is Artifactory a Docker registry?

An Artifactory repository is a hosted collection of Docker repositories, effectively, a Docker registry in every way, and one that you can access transparently with the Docker client.

Which is better nexus or Artifactory?

Artifactory supports far more repository types. Atifactory has a far better REST API (and has often been ahead on feature development, though it seems like Nexus does catch up over time).

What is the difference between a Docker registry and repository?

While a container repository is a collection of related container images used to manage, pull and push images, a container registry is a collection of repositories made to store container images. Container registries can store container images as well as API paths and access control rules.


1 Answers

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:

  1. 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.
  2. 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
  3. 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.
  4. 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.
  5. 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.
  6. 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

like image 146
Dror Bereznitsky Avatar answered Sep 21 '22 06:09

Dror Bereznitsky