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

Docker Getting Started

Docker Getting Started

At the Nairobi OpenStack meetup we mostly just hacked on Docker.io together. This was my intro deck to get everybody on the same page after going through the Docker presentation (http://www.docker.io/about/). I find their explanation a little opaque to beginners.

Adam Nelson

August 16, 2013
Tweet

More Decks by Adam Nelson

Other Decks in Programming

Transcript

  1. What is it? • Management Toolkit for deploying ‘containers’ to

    a developer laptop all the way to a production environment • Containers can be diffed for rapid deployment of diffs only • Containers, unlike full virtual machines, share the kernel, libraries, etc... making them much leaner when not on production Friday, August 16, 13
  2. Linux Containers (LXC) • Came from FreeBSD jails and chroot

    and other projects, about 5 years old • Used by Heroku for virtualization of dynos (safe since they control the software) • Shared kernel means efficient management of memory, CPU, and IO • Not isolated enough for hostile neighbors Friday, August 16, 13
  3. So, What is Docker again? Docker orchestrates LXC containers •

    as they are modified on a developer machine • as they are tested in a staging environment • as they are deployed to production Friday, August 16, 13
  4. Gunicorn Web Server MySQL Database Developer’s Laptop Server A Bare

    Metal Server B Bare Metal Docker Gunicorn Web Server MySQL Database Container A Container B Friday, August 16, 13
  5. MySQL Database Developer’s Laptop Server B Bare Metal Docker Gunicorn

    Web Server MySQL Database Container A’ Container B Friday, August 16, 13
  6. Gunicorn Web Server MySQL Database Developer’s Laptop Server A’ Bare

    Metal Server B Bare Metal Docker Gunicorn Web Server MySQL Database Container A’ Container B Friday, August 16, 13
  7. Getting Started • Docker only runs on Linux!!! • If

    you’re not using Linux, you need a VM running Linux (VirtualBox or VMware) • If you’re using a VM, you need Vagrant for efficient management • Please save yourself the hassle and use current versions of Mac OS X or Linux (or FreeBSD) for dev Friday, August 16, 13
  8. Arch Linux • The hippest OS even has its own

    instructions and people are maintaining repos • http://docs.docker.io/en/latest/installation/ archlinux/ Friday, August 16, 13
  9. Other Linux • Really, Ubuntu 13.04 will be simplest. •

    If you’re not on 13.04 (or on Ubuntu), make sure you have Linux Kernel >=3.8 and aufs installed • Have Fun!!! Friday, August 16, 13
  10. Mac OS X • Mountain Lion of course! • We’ll

    be using Vagrant to install Ubuntu in VirtualBox • http://docs.docker.io/en/latest/installation/ vagrant/ Friday, August 16, 13