IT IS A DEPLOYMENT PLATFORM BASED ON CONTAINERS
WHAT IS DOCKER
• Docker used to use libcontainer as its container runtime.
• There are multiple container runtimes
• runC by open containers (contributed by docker)
• rkt by CoreOs
THE WORLD OF VIRTUAL MACHINES
• Manually install & configure dependencies
• Script ( Shell, Capistrano -> Capistrano Recipes )
• Declarative ( Chef, Pupptet )
• Manually (FTP, SCP) and the start stop services
• Script ( Shell, Capistrano )
• Automated ( Jenkins ) continuous integration is a must.
• Platform as a service ( Heroku, App Engine, parse (defunct) )
SNAPSHOT VM DEPLOYMENT
• Rather than buying a new server setting it up and deploying your
• Your build program creates a Virtual Machine (Image/Snapshot) and
then asks another host to run it.
MAGIC OF DOCKER RUN
• Pulls the <ubuntu> image: Docker checks for the presence of the ubuntu image and, if it
doesn’t exist locally on the host, then Docker downloads it from Docker Hub. If the image
already exists, then Docker uses it for the new container.
• Creates a new container: Once Docker has the image, it uses it to create a container.
• Allocates a filesystem and mounts a read-write layer: The container is created in the file
system and a read-write layer is added to the image.
• Allocates a network / bridge interface: Creates a network interface that allows the
Docker container to talk to the local host.
• Sets up an IP address: Finds and attaches an available IP address from a pool.
• Executes a process that you specify: Runs your application, and;
• Captures and provides application output: Connects and logs standard input, outputs
and errors for you to see how your application is running.
MULTIPLE CLUSTER SOLUTIONS
• Swarm by docker
• Fleet by CoreOs
• Kubernetes by Google
• Mesos by Apache
• https://www.hashicorp.com/ has some really good tools which help
with clusteringDeployed Apps During the talk