Comment by pron
13 years ago
Can someone please explain what is Docker exactly? I've read this page, http://www.docker.com/about_docker/docker/, and didn't understand. What exactly does it encapsulate? What does the application see when it queries its environment?
Think about it as a very lightweight VM. You can do everything you can in a VM (which, in turn, can do everything you can in your regular system). Only thing is, it is a wrapper over lxc (Linux Containers) which means that you can only run Linux flavors and the host needs to have an advanced kernel (~3.8). Advantage is that if a VM needs ~80s to boot, a docker container can boot in <2s. And that's possible because a docker container shares the kernel of the host, (unlike VMs, which are all isolated)
Oh, so it's not only a deployment mechanism, but an actual runtime "VM".
What does it add over linux containers?
I gave some of my thoughts on the topic here: http://stackoverflow.com/questions/17989306/what-does-docker...
Linux containers are its main ingredient. Docker itself provides a system for constructing the container images (with a neat super-fast caching/inheritance system that can pull from a central image repository), and manages the lifecycle of the containers. It also does some magic with ports and service discovery.
Technically - Creation, management, communication, networking. Smartly.
Ecosystem - more and more people every day are integrating with their tools, building business around Docker, or extending support of existing business to Docker.
This link does a more in-depth explanation: http://www.docker.io/the_whole_story/#Background
In general, Docker encapsulates and runs your processes and file systems in an exactly repeatable way, and in a format that you can replicate across a wide variety of machines.