Docker is a open platform to package your code ,run, deploy, ship anywhere.
Why docker ?
Let's say my application stack contains of MongoDB, Redis, NodeJ. Are we sure that these libraries and dependencies compatabile with the OS we are using ?("Matrix from hell"). Herecomes the docker, it seperates the application running from the infrastructure.
How docker does that ?
Containers !!. Docker does that with the help containers.
It is a loosely isolated environment , light-weight, runnable instance. Isolation and security lets us run many containers on the same host by sharing the os kernal.
The above issue can also be handled by virtualisation, We need to create seperate VM instance for each dependancies to run which could be a overhead to maintain.
Docker Container vs Virtualisation
What I can use Docker for?
- Fast and consisten delivery of application:
- Responsive Deployment, portable and scaling
- Running more workload on same hardware