Vagrant and docker
-
Upload
duckduckgo -
Category
Technology
-
view
45 -
download
0
Transcript of Vagrant and docker
Advanced Virtualization- Vagrant- Docker
Mr. Mohan PawarMr. 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.
Examples.
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.
What are the components ofVagrant?
1. Vagrant
☞ 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 free.
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.
4. Vagrantfile
A text file (written with Ruby syntax) that describes the VM environment.
Vagrant Demo Time !
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 anywhere.
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, ...
Virtual Machine vs Docker
Docker technology
libvirt: Platform Virtualization
LXC (LinuX Containers): Multiple isolated Linux systems (containers) on a single host which is replace by LibContainers
Layered File System
Run Platforms
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 Server
Docker is the world’s leading software containerization platform.
Docker Terminology
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 longer used
Images vs Container as Class vs Object
Dockerfile
Create images automatically using a build script: «Dockerfile»
Can be versioned in a version control system like Git or SVN, along with all dependencies
Docker Hub can automatically build images based on dockerfiles on Github
Hands - On Lab Time...!
Docker Use cases
Development Environment
Environments for Integration Tests
Quick evaluation of software
Microservices
Multi-Tenancy
Unified execution environment (dev test prod (local, VM, cloud, ...) e.g. BookMyShow migrated their 3 servers to docker.
Future Scope
All IT companies are migrating their servers with docker.
Micro-service architecture
Serverless computing.
Docker Vs Vagrant
Conclusion
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.
Thank You.