What is Docker ?

Software’s next big thing : a new way to build and ship applications

Docker is a platform for managing Linux containers. In brief, Docker is a containerization mechanism. It is a new open source container technology that makes it easier to get many applications running on the same old servers. It also makes packaging and shipping programs very easy. 

Docker was started in March 2013. It began as an open source implementation of the deployment engine which powers dotCloud. By today, Docker has become a huge industry phenomenon. During the past few months, many industrial giants such as Dell, HP, Google, IBM, Microsoft, Amazon and RedHat have asked to join forces with Docker. This has been a great achievement of the Docker’s founder, Solomon Hykes. I was surprised to get to know that he started working on Docker in his mother’s Paris basement as a tiny side thing that he thought only a handful of other people would ever care about. But do you know that Docker has become the most popular container standard by today?

Docker has introduced a new revolution for packaging and deploying applications on Linux servers. I love open source software, because it allows anyone to view and modify the code, which can then be returned to the original application. There is no doubt that contributing to an open source software provides a sense of satisfaction which in turns provides a service for everyone who uses it. With open source software such as Docker, you get the application code which you can work with if you want. Otherwise you can just download the application and run it. It is really awesome !

Traditional virtualization vs Docker virtualization

Traditional virtualization

Docker virtualization

App-A and App-B are two virtualized applications. Each application in traditional virtualization includes the necessary binaries and libraries along with a guest operating system which has a size of several Gigabytes. Contrasting to this type of virtualization, docker engine container comprises just the application and its dependencies. It runs as an isolated process on the host operating system while sharing the kernel with other containers. Therefore it enjoys the benefits of resource allocation, portability and efficiency.

This is how Docker.com describes Docker:
"Docker allows you to package an application with all of its dependencies into a standardized unit for software development"

Docker exhibits three main characteristics.
  • Lightweight : All containers that run on a single machine share the same operating system kernel. They start instantly and make efficient use of RAM. 
  • Open : Docker containers are based on open standards. Docker allows all containers to run on all major Linux distributions and Microsoft operating systems. 
  • Secure : Containers act as a layer of protection for the application by isolating the applications from each other and the underlying infrastructure. 
These features made more community attraction towards Docker.

What's so special?

In Docker's own words:
"Docker aims to enable a new age of agile and creative development, by building 'the button' that enables any code to instantly and consistently run on any server, anywhere.

Docker is an open source engine that enables any application to be deployed as a lightweight, portable, self-sufficient container that will run virtually anywhere. By delivering on the twin promises "Build Once…Run Anywhere” and “Configure Once…Run Anything," Docker has seen explosive growth, and its impact is being seen across devops, PaaS, scale-out, hybrid cloud and other environments that need a lightweight alternative to traditional virtualization."

Docker project is increasing the attention of developers and Dev Ops communities. These are some of the Docker highlights.

  • Over 140,000 container downloads
  • Over 6,700 GitHub stars and over 800 forks
  • Over 600 GitHub Dockerfiles created in three months
  • Thousands of containerized applications on the Docker public registry
  • Over 150 projects built on top of the open source engine
  • Over 50 Meetups in 30 cities around the world
  • Almost 200 contributors, 92 percent of whom don’t work for Docker, Inc.
It is not surprising that companies like Yandex, eBay, Rackspace and CludFare have already started their journey with Docker. Docker is used in many important enterprise projects like Chef, Puppet, Travis and Jerkins.

Before starting my journey with Docker, I tried to analyse its architecture first. 


Post a Comment