Ehsan Ghanbari

Experience, DotNet, Solutions

Docker is different from a virtual machine!

The use of Linux containers to deploy applications is called containerization. A container runs natively on Linux and shares the kernel of the host machine with other containers. It runs a discrete process, taking no more memory than any other executable, making it lightweight. virtual machine (VM) runs a full-blown operating system with just virtual access to host resources through a hypervisor. VMs provide an environment with more resources than most applications need!


Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies and ship it all out as one package and docker is a tool designed to make it easier to create, deploy, and run applications by using containers. It provides a way to run applications securely isolated in a container with all its dependencies and libraries. Docker brings several new things to the table. The first one is that it makes containers easier and safer to deploy And it enables developers to easily pack, ship, and run anywhere. Based on reports, over 3.5 million applications have been placed in containers using Docker technology. Now the developer can rest assured that the application will run on any other Linux machine regardless of any customized settings.


Unlike a virtual machine, rather than creating a whole virtual operating system, Docker allows applications to use the same Linux kernel as the system that they're running on and only requires applications be shipped with things not already running on the host computer. This gives a significant performance boost and reduces the size of the application. For developers, it means that they can focus on writing code without worrying about the system that it will ultimately be running on. It also allows them to get a head start by using one of the thousands of programs already designed to run in a Docker container as a part of their application. Docker gives flexibility and potentially reduces the number of systems needed because of its small footprint and lower overhead. As a result, The main difference between containers and VMs is that containers just abstract the operating system kernel while the VMs abstracts an entire device.

About Me

Ehsan Ghanbari

Hi! my name is Ehsan. I'm a developer, passionate technologist, and fan of clean code. I'm interested in enterprise and large-scale applications architecture and design patterns and I'm spending a lot of my time on architecture subject. Since 2008, I've been as a developer for companies and organizations and I've been focusing on Microsoft ecosystem all the time. During the&nb Read More

Post Tags
Pending Blog Posts
Strategic design
Factory Pattern
time out pattern in ajax
Selectors in Jquery
Peridic pattern
How to query over Icollection<> of a type with linq
How to use PagedList In MVC
Domain driven design VS model driven architecture
What's the DDD-lite?
Using Generic type for type casting in F#
comments powered by Disqus