We started Docker and ran our first container in the previous Docker post by pulling an image from the Docker Hub. Docker Hub is similar to GitHub. We use GitHub to store code to be shared internally or externally to our organizations. Docker Hub enables us to do the same thing with our Docker images. Docker provides the ability to store publicly hosted images as well as privately hosted images.
Docker is the Docker Engine which we installed in our previous post. It enables to run containers within our server environment. This is connected to the Docker Hub which is the heart or core of our Docker environment. The Docker Hub is often referred to as a registry which contains repositories. Docker Images are pulled from these repositories.
The Docker Hub is the standard install but Docker can work with any available repository. Many of the public cloud services like AWS and Azure offer their own versions of the Docker Hub. Docker will also allow us to host our own private repository or registry within our organization. This is especially beneficial for organizations with that use Docker to host proprietary information.
We will need to set up an account to use the Docker Hub.

Navigate to https://hub.docker.com/ and select “Sign up for Docker Hub“.

We will need to select a Docker ID. This ID will probably be shared so we recommend that you keep it very generic. Select “Continue” once all of the information. Docker will send you an email to verify your account.

Respond to this email and click “Confirm Your Email With Docker“. This will open a new tab in your browser where you will complete you profile.

Enter your information and click “Continue“. We will then sign into the hub and get started.

We will have the option to Create a Repository, Create an Organization, or we can scroll through the list of repositories and select one.

We can see options like “NGINX” and “mongoDB” listed in the “Official Images” library. These are a set of Docker repositories that are hosted on the Docker Hub that are designed for specific use cases. There are base OS repositories like Ubuntu or CentOS which serve as a starting point for a majority of users. They will provide a drop in solution for popular programming languages, runtime, data stores, and other services.
The Official Images are very similar to a Platform As A Service (PaaS) offering. They will include the Docker best practices and provide a clear set of documentation to serve as references for other Docker service authors.
The Official Images will have security updates applied in a timely manner. This is especially important for the Official Image library as these images will be the most used.
Please click on the NGINX icon and we will take a look at what the image looks like.

This is the official repository for NGINX. The command (docker pull nginx) is shown on the right side of our screed with a black background.

We will dig into these images further in future posts. Let’s go back and search for the “Hello World” image that was referenced in our previous post.


The command to pull the “Hello World” image is docker pull hello-world.

If we scroll down in the repository we will see a “Quick Reference” section which will list the GitHub repository to file issues, links for Docker Community Forums, etc.

The section next section will provide us with a sample of the expected output for various commands.

This information will not necessarily be shown for every image as it is up to the image maintainer to determine what information to share. Hello World has one of the most extensive sets of information provided and so is great for demonstration purposes.
We will close this post by providing a walk through for how to create a repository. Scroll back to the top of your screen and click “Repositories” and then “Create Repository“.


We will name the repository “docker_101” and use the same for description since this will be for demonstration purposes.

Visibility can be set to “Public” or “Private“. The public option opens the repository up for the whole world to use. We will select this option for use in future posts.

We can choose to enter “Build Settings” but these are optional and so we will not do it at this point but will in future posts as we go deeper into Docker.

Click on “Create” and our repository is finished. We will examine Docker images and how we can use them in our next Docker post.