In my previous post, I talked about how Docker fits in with workload virtualisation.  In this post, I’ll look at getting started with Docker itself.


In this post I’ll look at the basics of installing Docker and creating a container.  I’ll reference the CentOS distribution initially, with more added as I validate and test them; this installation is based on CentOS 6.5, which is the minimum version required for Docker support.

The Docker packages for CentOS aren’t available through the standard yum repo libraries but are available through EPEL (Extra Packages for Enterprise Linux) repository.  The first step is to add the EPEL repository:


Next we can install the Docker packages using yum:


And here are the results of the installation:


The installation also installed dependent packages for LXC (Linux Containers), which are used by Docker up to version 1.0.

Now we can start the Docker service and set it to start after each reboot with the following two commands:


At this point we can check the installation is successful and start running containers.  All commands start with the docker keyword; here we check the version and systemwide information.  Run the docker command without arguments to get a list of command options.


Running Containers

In order to start up a container, we need a Docker image. Images are held in repositories, which are divided into Official Repositories and Private Repositories. In this instance we’ll use the official repository for CentOS.

There are two ways to “pull” or download an image.  We can do it either explicitly with the pull command or start a container with an image that isn’t already downloaded.  In this instance, I’ve downloaded the whole of the CentOS repository.


Docker images are stored in a number of folders in the /var/lib/docker/, however we’ll save the details of that for another time. Now we can start a container. In this instance we’ll run the latest CentOS image:


Here I’ve started a container, with the -i and -t switches which make the container interactive by creating a persistent stdin and attaching a pseudo terminal. The container runs the /bin/bash command, which we can see is the only process running apart from the ps command then run to display running processes. Exiting the shell closes the container (as the shell was the highest process running), however a container can be exited without terminating it using CTRL-P then CTRL-Q. The following screenshot shows the docker ps command used to list running containers.  Each container is tracked by a GUID and by default assigned a two word name, although this can be specified by the user.


This post provides a starting point for getting Docker up and running. Future posts will look at networking, how Docker images and containers are stored on the host and of course doing something useful!


Related Links

Comments are always welcome; please read our Comments Policy first.  If you have any related links of interest, please feel free to add them as a comment for consideration.  

If you enjoyed this post, please consider sharing it!

Copyright (c) 2009-2015 – Chris M Evans, first published on, do not reproduce without permission.

Written by Chris Evans

With 30+ years in IT, Chris has worked on everything from mainframe to open platforms, Windows and more. During that time, he has focused on storage, developed software and even co-founded a music company in the late 1990s. These days it's all about analysis, advice and consultancy.