easily create lightweight, portable, self-sufficient containers from any application. The same container that a developer builds and tests on a laptop can run at scale, in production, on VMs, bare metal, OpenStack clusters, public clouds and more” - http://docker.io
message queues) • Deploy almost everywhere (Linux servers, VMs or bare metal, any distro, Kernel 3.8) • Deploy reliably & consistently (local and on server same) • Deploy easily • Deploy at scale
Analytics DB, API endpoint, Web Frontend • Development VM, QA Server, Public cloud, Production Servers, Customer data center, Production cluster • Running apps in multiple environments results in N x N nightmare
system level virtualisation method for running multiple isolated Linux systems • Provides way to run mini Linux systems within another Linux systems • http://en.wikipedia.org/wiki/LXC
clone https://github.com/dotcloud/docker.git • Startup the vagrant image $ vagrant up • SSH into the image $ vagrant ssh • Use docker in VM $ docker • Vagrant client works on Mac
new LXC container • Created a new file system • Mounted a read/write layer • Allocated network interface • Setup IP Setup NATing • Executed the bash shell in the container • ** All under a very few minutes What Docker has done?
uniform development & production environments • Automated testing and continuous integration/deployments • Deploying and scaling web apps, databases and backend services
safe, hygienic and portable runtime environment for app • No worries about missing dependencies during subsequent deployments • Reduce / eliminate compatibility concerns on different platforms