Understanding Docker
Docker is a Container Management System (CMS) that enables you to separate your application from your infrastructure, which makes it easier to develop, ship, and run your application. It is useful for managing Linux Containers (LXC). This let's you create images, and also perform actions on the containers as well as run commands or operations against containers.
In simple words, Docker provides a platform to package and run your application in an isolated environment called a container, and then ship it across different of software release environments, such as stage, pre-production, production, and so on.
Docker is lightweight in comparison to any Traditional VMs, as depicted in the following image:

Few facts about Docker versus virtualization
There are a lot of organizations that are still working successfully on traditional VMs. Having said that, there are organizations that have either moved their application to Docker or are ready to do so. Here are a few reasons why...