Intro to Docker
The contents of the the slides have been stol..., umm,
Thanks to everyone at Docker, Inc!
Since it started in March 2013...
>7,500 github stars
>200 significant contributors
>200 projects built on top of docker
UIs, mini-PaaS, Remote Desktop...
1000’s of Dockerized applications
Memcached, Redis, Node.js, Hadoop...
Integration in Jenkins, Travis, Chef, Puppet, Vagrant and OpenStack
Meetups arranged around the world…
with organizations like Ebay, Cloudflare, Yandex, and Rackspace presenting on their use of Docker
The Matrix from Hell
Cargo Transport Pre-1960
Also a Matrix from Hell
Solution: Intermodal Shipping Container
Docker is a Container System for Code
Docker Eliminates the Matrix from Hell
Why Developers Care
Build once... (finally) run
A clean, safe, hygienic, portable runtime environment for your app.
No worries about missing dependencies, packages and other pain points during subsequent deployments.
Run each app in its own isolated container, so you can run various versions of libraries and other dependencies for each app without worrying.
Automate testing, integration, packaging...anything you can script.
Reduce/eliminate concerns about compatibility on different platforms, either your own or your customers.
Cheap, zero-penalty containers to deploy services. A VM without the overhead of a VM. Instant replay and reset of image snapshots.
* Where "anywhere" means an x86 server running a modern Linux kernel
(3.2+ generally or 2.6.32+ for RHEL 6.5+, Fedora, & related)
Why Administrators Care
Configure once... run anything
Make the entire lifecycle more efficient, consistent, and repeatable
Increase the quality of code produced by developers.
Eliminate inconsistencies between development, test, production, and customer environments.
Support segregation of duties.
Significantly improves the speed and reliability of continuous deployment and continuous integration systems.
Because the containers are so lightweight, address significant performance, costs, deployment, and portability issues normally associated with VMs.
Why it Works: Separation of Concerns
More Technical Details
Regardless of kernel version
Regardless of host distro
Physical or virtual, cloud or not
Container and host architecture must match...
If it can run on the host, it can run in the container
If it can on a Linux kernel, it can run
High level: a lightweight VM
Own process space
Own network interface
Can run stuff as root
Can have its own /sbin/init (different from host)
Low level: chroot on steroids
have its own /sbin/init
Container = isolated processes
Share kernel with host
VMs vs Containers
Why are Docker Containers Lightweight?
What are the Basics of a Docker System?
Changes and Updates
Virtually any distribution with a 2.6.32+ kernel
Red Hat/Docker collaboration to make work across RHEL 6.4+, Fedora, and other members of the family (2.6.32 +)
CoreOS—Small core OS purpose built with Docker
Docker integration into NOVA (& compatibility with Glance, Horizon, etc.) accepted for Havana release
OpenShift, Solum (Rackspace, OpenStack), Other TBA
Deis, Voxoz, Cocaine (Yandex), Baidu PaaS
Native support in Rackspace, Digital Ocean,+++
AMI (or equivalent) available for AWS & other
Integrations with Chef, Puppet, Jenkins, Travis, Salt, Ansible +++
Mesos, Heat, ++
Shipyard & others purpose built for Docker
1000’s of Dockerized applications available at index.docker.io
Docker 0.7 (current release)
Reduce kernel dependencies
Docker 0.8 (Dec)
Shrink and stabilize Core
Provide stable, pluggable API
Beam: Introspection API based on Redis
Expand snapshot management features for data volumes
Will consider this “production ready”
Docker 0.9 (Jan)
Docker 1.0 (Feb)
Will offer support for this product
Want to Learn More?
Getting started (tutorial, installation, guide, etc)
IRC: freenode #docker