an introduction to vagrant and docker
TRANSCRIPT
An Introduction to Vagrantand DockerScott Lowehttp://blog.scottlowe.org
Before we begin☞ Get involved! Audience participation is requested and
encouraged.
☞ If you use Twitter, feel free to tweet about this session (use @NashvilleVMUG or hashtag #NashvilleVMUG)
☞ Feel free to take photos or videos of today's session and share them online
☞ A PDF copy of this presentation will be available online after the event
What is Vagrant?☞ A CLI-based tool for streamlining the use of VM environments
(creation, provisioning, usage, & decommissioning)
☞ Available from http://www.vagrantup.com
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 of Vagrant?
Vagrant☞ Written in Ruby
☞ Multi-platform (Windows, Linux, OS X)
☞ CLI (no GUI)
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 fee
☞ Other providers available as open source projects
☞ See https://github.com/gosddc for examples
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
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
☞ Available from https://www.docker.com
What are Linux containers?☞ Linux containers can be thought of as "lightweight
virtualization" or "OS virtualization"
☞ Leverage features built into the Linux kernel (cgroups and namespaces)
☞ Linux containers have been around for a while, but weren't very easy to use
Use cases for Docker☞ Rapidly deploy (or un-deploy) containers
☞ Simplify the creation of custom container images
☞ Make sharing container images very easy
What are the components of Docker?
Docker daemon☞ Responsible for spawning containers
☞ As a daemon, it runs in the background
☞ By default, listens on a local Unix socket (can be configured to listen on a network port)
Docker client☞ CLI client for interacting with the Docker daemon
☞ Can run locally on the same system as the daemon, or remotely (daemon must be listening on a network port)
Docker image☞ The contents of a Docker container
☞ Comprised of multiple filesystem layers
☞ Stored locally, can be shared via the Docker Hub
☞ Images can be based on other images
Dockerfile☞ A simple text file describing a Docker image
Docker demo time!
Docker + Vagrant = ?
Q&A
Thank you!Be sure to provide feedback to the VMUG leaders regarding this session.
Blog: http://blog.scottlowe.orgTwitter: @scott_loweGitHub: https://github.com/lowescottLife: Colossians 3:17