Mr. Mohan Pawar
Mr. Richard Joseph
What is Vagrant ?
A CLI-based tool for streamlining the use of VM environments
(creation, provisioning, usage, & decommissioning)
A "VM environment"?
Think of this as one or more VMs (based on a user-specified template) along
with networking and possible in-guest software customization.
The classic "3 tier" web/app/DB topology.
Trying out new technologies (CoreOS and etcd cluster, Open vSwitch).
Use cases for Vagrant
Sharing VM environments with other Users.
Accelerating the creation of VM environments.
Automating software provisioning inside VM environments.
Providing a CLI for creating/destroying/accessing VM environments.
☞ Written in Ruby
☞ Multi-platform (Windows, Linux, OS X)
☞ CLI (no GUI)
2. Vagrant provider
Interfaces with back-end virtualization solution.
Vagrant comes with a provider for VirtualBox.
Provider for VMware desktop products (Fusion & Workstation) available for a
Other providers available as open source projects.
3. Vagrant box
Template used when creating VM environments in Vagrant.
Boxes are provider-specific.
Packer is a related product that can be used to help build Vagrant boxes.
A text file (written with Ruby syntax) that describes the VM environment.
What is Docker?
A CLI tool for simplifying the use of Linux containers.
Docker is an open source engine that automates the deployment of any
application as a lightweight, portable and self-sufficient that will run virtually
Package your application into a standardized unit of software development.
Docker : Name
Provide a uniformed wrapper around a software package:
«Build, Ship and Run Any App, Anywhere»
Similar to shipping containers: The container is always the same, regardless of
the contents and thus fits on all trucks, cranes, ships, ...
libvirt: Platform Virtualization
LXC (LinuX Containers): Multiple isolated Linux systems (containers) on a
single host which is replace by LibContainers
Layered File System
Various Linux distributions (Ubuntu, Fedora, RHEL, Centos, openSUSE, ...)
Cloud (Amazon EC2, Google Compute Engine, Rackspacem, Azure) 2016-12:
Microsoft announces plans to integrate Docker with next release of Windows
Docker is the world’s leading software
Persisted snapshot that can be run
images: List all local images
run: Create a container from an image and execute a command in it
tag: Tag an image
pull: Download image from repository ◦
rmi: Delete a local image This will also remove intermediate images if no
Create images automatically using a build script: «Dockerfile»
Can be versioned in a version control system like Git or SVN, along with all
Docker Hub can automatically build images based on dockerfiles on Github
Docker Use cases
Environments for Integration Tests
Quick evaluation of software
Unified execution environment (dev test prod (local, VM, cloud, ...) e.g.
BookMyShow migrated their 3 servers to docker.
All IT companies are migrating their servers with docker.
Containerization is the fastest, most resource effective, and most secure setup
we know to date and docker is drifting the IT world in more agile way to
achieved easy to create architecture.