I want to host my own docker-registry server to be independent from docker-hub.
I want to run it native on my server, but I can only find documentations, which are using running it inside a container.

My question:
Is it possible to install docker registry over a package or do i have to run it in a container?

2 Answers 2


I take for granted you are referring to the registry server released by docker.com. The documentation clearly states on the very first line:

Before you can deploy a registry, you need to install Docker on the host

Since the registry is the main product of the docker/distribution opensource project, you could fork and see how you can modify this as a standalone install not requiring docker, but I have no clue if it is possible and that would probably end up being a bad idea.

There are other existing products you can install 'standalone' that will let you manage your own registry. But they all come with some degree of requirements (java, ruby...). I have experience with 2 free products I use daily:

  • Sonatype nexus3 oss is a multi format repository manager supporting docker registries (requires java).
  • gitlab-ce has support for container registries in each projects if you configure it (ruby required).

The latest one is probably an overkill if you only need a basic registry and not all of the git, wiki, etc. ressources.

I recently came across a fairly recent review article listing other products I have no experience with:

It also mentions as a bonus the use of Openshift as a registry, but even minishift for something as light as possible will require to install docker.

All of these solutions can probably meet your 'native run' requirements, but they are all much more complex to install and maintain than simply poping-up a registry:2 container.

  • Note that most of these solutions will actually come with an "embedded" Registry Server by Docker.com. May 28, 2019 at 11:55


Originally you could install docker-registry via pip https://github.com/docker/docker-registry

But this was deprecated with the new generation of docker-registry in golang

Notice: The classical python "Docker Registry" is deprecated, in favor of a new golang implementation. This here is kept for historical purpose, and will not receive any significant work/love any more. You should head to the landing page of the new registry or the "Distribution" github project instead.

Here is an old guide that I wouldn't recommend.
OLD GUIDE (2014): https://www.ceondo.com/notes/docker-registry/


You can also look into Linux Snaps
LINK: https://snapcraft.io/docker
GUIDE: https://www.allprogrammingtutorials.com/tutorials/installing-docker-on-ubuntu-centos-using-snap.php

# Lookup docker snap
snap info docker

# Install from stable channel
sudo snap install docker

# Install from a specific channel for deploying older versions
sudo snap install --channel=<channel-name> docker


The fastest way to get a private docker registry server running is to install docker and then just run a detached container

sudo apt-get update
sudo apt-get install docker.io
sudo systemctl start docker
sudo systemctl enable docker
docker --version
docker run -d -p 5000:5000 -v /registry/images:/var/lib/registry --restart=always --name registry registry:2

You may need to setup persistent volumes to store the library images.

I'm currently using docker installed on a Synology DiskStation to host my own private docker registry container


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.