A Quick Overview of Docker's Containerization Architecture

One of the most exciting emerging technologies of 2014 has been the Docker project. Docker was originally founded by dotCloud. The PaaS provider released the Docker project into open source back in 2013. Docker was recently spun off from dotCloud and since doing so, Docker has received over $40M in venture capital.

“Clearly, Docker has become a thing,” said Docker CEO Ben Golub in an interview. Since going its own way, Docker has been downloaded several millions of times and Docker only seems to gaining momentum. Considering the fact that Docker has just announced that it will be supported on Windows Server in the near future, it becomes beneficial to take a closer look at the Docker technology.

Docker: How Does It Work?

Docker, which is currently only available on Linux, uses virtualized containers to move applications from server to server while also packaging all of the applications prerequisites inside of the virtual container. This method of delivery has several instantaneous advantages over the traditional model of application delivery. Given the fact that public and private cloud infrastructures often need the ability to scale up and down quickly, being able to deliver an application in a consistent fashion using the Docker technology can give your organization an edge in systems management and application delivery.

What’s Under the Hood of Docker?

The Docker architecture can be divided into two categories. You have the parts category that makes up the actual components of Docker and you have the elements category that references the files and automation features that Docker implements.  Docker’s parts consist of the following:

  • Docker Daemon – Manages Docker Containers in Linux
  • Docker Command Line Interface – A System Prompt for Docker used for command issuance
  • Docker Image Index – This is where Docker Images are stored

Docker’s elements consist of the following:

  • Docker Containers – These containers have the file and directory structure of your application
  • Docker Images – Snapshots of your OS that help enable application portability
  • Dockerfiles – Scripts that allow you to automate Docker deployments

Interested in Trying Docker?

Most of the newer Ubuntu distributions have Docker preinstalled. If you are using a version of Ubuntu that does not have Docker preinstalled, you can easily begin using Docker by going your Ubuntu System Prompt and typing:

sudo aptitude install lxc-docker

You may be required to install prerequisites on your Linux box in order to begin using Docker. Please check the Docker website for documentation on your exact instructions for your specific version of Linux.