Difficulty: Beginner
Estimated Time: 10 minutes

Deploying a Registry Server

Objective: This is a short and fairly simple lab. The objective is to show you how we can set up our own registry, much like our local registry, secure it and push and pull images to and from.

Outcome: You will set up a stand alone registry with user authentication A registry is a service for storing and accessing Docker images. Docker Cloud and Docker Store are the best-known hosted registries, which you can use to store public and private images. You can also run your own registry using the open-source Docker Registry, which is a Go application in a Alpine Linux container.

What You Will Learn

  • Run a local registry in a container and configure your Docker engine to use the registry;
  • Generate encrypted passwords (using Docker!) and run an authenticated, secure local registry with basic auth.


Docker Registry is a free, open-source application for storing and accessing Docker images. You can run the registry in a container on your own network, or in the cloud, to host private images with secure access. For Linux hosts, there is an official registry image on Docker Store.

We've covered all the options, from running a registry and finally adding basic authentication to restrict access. By now, you know how to set up a usable registry in your own environment.

Don’t stop now! The next scenario will only take about 10 minutes to complete.

Docker Registry

Step 1 of 8

Step 1 - Understanding Image Names

Typically we work with images from the Docker Store, which is the default registry for the Docker Engine. Commands using just the image repository name work fine, like this: docker pull hello-world


Remember, hello-world is the repository name, which we are using as a short form of the full image name. The full name is docker.io/hello-world:latest. That breaks down into three parts:

  • docker.io - the hostname of the registry which stores the image;
  • hello-world - the repository name, in this case in {imageName} format;
  • latest - the image tag. If a tag isn't specified, then the default latest is used. If a registry hostname isn't specified then the default docker.io for Docker Store is used. If you want to use images with any other registry, you need to explicitly specify the hostname - the default is always Docker Store, you can't change to a different default registry.