Setup Docker Private Registry on Ubuntu

A “Docker private registry” is a centralized repository for storing and distributing Docker images within a private network or organization. It is useful to manage their own images, which can be easily shared and deployed within their own infrastructure.

By using a private registry, organizations can maintain security and control over their images, ensuring that only approved images are used within their infrastructure. Additionally, a private registry can improve the deployment speed and reliability of Docker images.

This article will explain the step-by-step instructions to set up the Docker private registry on Ubuntu.

How to Setup Docker Private Registry on Ubuntu?

Setting up a Docker private registry on Ubuntu is a useful tool for organizations looking to improve their deployment processes, security, and control over their Docker images. For setting up the private Docker registry, follow these steps:

Prerequisite: Install Docker on Ubuntu

To set up Docker private registry on Ubuntu, users must ensure that Docker is installed on the operating system. If not, follow the procedure which is provided on the official Website.

Step 1: Start the Docker daemon

After completing the installation, start the Docker daemon using the “systemctl” command as seen in the following script:

$ sudo systemctl start docker

The output shows that docker has been successfully started.

Step 2: Pull the Docker Registry Image

To pull the Docker registry image from the Docker Hub, specify the “registry” with the “sudo” privileges as below:

$ sudo docker pull registry

The execution of the above command shows that the newer image “registry” has been downloaded.

Step 3: Setup Docker Private Registry Container

To start the Docker registry container, execute the “docker run” command by specifying the port number:

$ sudo docker run -d -p 5000:5000 --restart=always --name registry registry:2

The description of the below command is provided here:

  • registry:2: It is the official Docker image for running a Docker registry, which is used to store and distribute Docker images.
  • –restart=always: This option ensures that the container will automatically restart if it stops for any reason.
  • -p 5000:5000: It maps port 5000 on the host to port 5000 in the container, allowing external access to the registry.

The output shows that the Docker container named “registry” has been downloaded from the image “registry:2”.

Step 4: Pull the “alpine” Docker Image

Alpine is a popular and lightweight Linux distribution that is commonly used as a base image for other Docker images. To pull the “alpine” Docker image from a Docker registry to the local host, execute the below script:

$ sudo docker pull alpine

The output displays that the docker image “alpine” has been downloaded.

Step 5: Tag and Push a Target Image to the Registry

To tag an image and push it to the registry, users need to specify the “image name”. For instance, the “alpine” image is mentioned by specifying the port “5000” to the localhost:

$ sudo docker tag alpine localhost:5000/alpine

For pushing the docker image to the registry, the “docker push” command is utilized with the “alpine” image name:

$ sudo docker push localhost:5000/alpine

The output shows that the “alpine” image has been successfully pushed to the particular repository.

Step 6: Pull an Updated Image from the Registry

To pull the updated image from the registry, run the “docker pull” command by specifying the port number “5000” and image name “alpine” as below:

$ sudo docker pull localhost:5000/alpine

The output shows that the “alpine” image has been pulled with the updated settings.

Step 7: Verify the Registry is Running

To verify the registry is up and running, users can utilize the “curl” command with the particular URL:

$ curl http://localhost:5000/v2/_catalog

The above display shows that the current private registry is running on Ubuntu.


To set up a private Docker registry on Ubuntu, users first need to pull the “registry” image using the “docker pull registry” script. Furthermore, start the docker private registry via the “docker run -d -p <port no.> –restart always –name registry registry:tag” script. After that, pull the specified image and tag it. Finally, push the tagged image to your Docker private registry. This guide has demonstrated step-by-step procedures to set up the docker private registry on Ubuntu.

About the author

Syed Minhal Abbas

I hold a master's degree in computer science and work as an academic researcher. I am eager to read about new technologies and share them with the rest of the world.