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?

  • How is docker able to mount a volume from docker client into a docker container running on docker host?
  • iptables rules break communication between Docker containers
  • How does Istio compare to Traefik?
  • gcloud docker pull fails with Untar exit status 2 unexpected fault address
  • xdebug not working in Docker for Mac
  • Why are sessions for my two Laravel sites conflicting?
  • Can we mount sub-directories of a named volume in docker?
  • Windows Container swarm publish port and not access
  • Docker container cannot access internet, only ping works
  • Docker shows inconsistent behaviour when creating container from image
  • Dockerfile - How to pass an answer to a prompt post apt-get install?
  • Docker Node.js environment variables
  • One Solution collect form web for “Docker Registry vs Nexus/Artifactory”

    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

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.