Now that you know what a container is, let me try and explain what a Docker container is. It is like a framework which provides easy “knobs” to provide a similar isolated environment as Type 1/2 Hypervisors but without the “layers”. It allows easier maintenance of such “containers” with the wrappers which is called as Docker containers. There are other containers like LXC, Open-VZ. However there are claims that the Docker interface is more user friendly than others.
Why everyone loves Docker?
Hypervisors like Hyper-V, KVM, Xen, ESX etc are all based on emulating virtual hardware. That means hypervisors are heavy in system requirements. Containers, however, use shared operating systems. That means they are much more efficient than hypervisors in system resource terms.
Instead of virtualizing hardware, containers rest on top of a single Linux instance. This means you can leave behind the useless 99.9% VM junk, leaving you with a small, application bubble containing your application. So use of containers boosts up the number of server application to four to five times compared to virtual machines. Docker is built on top of LXC. Docker has its own file system, storage, CPU, RAM, and so on.
The key difference between containers and VMs is that while the hypervisor abstracts an entire device, containers just abstract the operating system kernel.
Thus it can get the most server application instances running on the least amount of hardware, also you need not care about running multiple operating system VMs. This move can save a data center or cloud providers millions annually in power and hardware costs. It’s no wonder that many are rushing to adopt Docker as fast as possible.
Cloud loves Docker!
Well you might start thinking that Docker is here to end the Virtualization and so the cloud computing. But that is not the case. Using Docker clouds have become more flexible and powerful.
The ace of opensource cloud computing coming up with a Docker support in its next Kilo release. That means user can easily develop and test any application locally and then ship it to any cloud. Docker is also supported by cloud computing giants like AWS, Azure etc. and it is also supported by famous PaaS platform like Google App engine. If you check the Google search trends Docker seems to be gaining popularity, a Lot!
So to conclude, here is what Docker can do for you, It can get more applications running on the same hardware; it makes it easy for developers to quickly create, ready-to-run containered applications; and it makes managing and deploying applications much easier.
To sum it up, after Openstack, Docker seems to be riding the hype tsunami!