Upgrade to Pro — share decks privately, control downloads, hide ads and more …

An Introduction to Vagrant and Docker

An Introduction to Vagrant and Docker

This presentation, given at the Nashville VMUG Converge 2015 event on April 8, 2015, provides an overview of Vagrant and Docker.

Scott Lowe

April 08, 2015

More Decks by Scott Lowe

Other Decks in Technology


  1. 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
  2. What is Vagrant? ☞ A CLI-based tool for streamlining the

    use of VM environments (creation, provisioning, usage, & decommissioning) ☞ Available from http://www.vagrantup.com
  3. 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)
  4. 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
  5. 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
  6. 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
  7. What is Docker? ☞ A CLI tool for simplifying the

    use of Linux containers ☞ Available from https://www.docker.com
  8. 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
  9. Use cases for Docker ☞ Rapidly deploy (or un-deploy) containers

    ☞ Simplify the creation of custom container images ☞ Make sharing container images very easy
  10. 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)
  11. 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)
  12. 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
  13. Q&A

  14. Thank you! Be sure to provide feedback to the VMUG

    leaders regarding this session. Blog: http://blog.scottlowe.org Twitter: @scott_lowe GitHub: https://github.com/lowescott Life: Colossians 3:17