Intro to Docker
Thanks to Docker, Inc for the content in these slides from
Docker Slideshare
materials.
Thanks to everyone at Docker, Inc!
Since it started in March 2013...
>200,000 pulls
>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 Challenge
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
anywhere
*
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
Why
Run everywhere
Regardless of kernel version
Regardless of host distro
Physical or virtual, cloud or not
Container and host architecture must match...
Run anything
If it can run on the host, it can run in the container
If it can on a Linux kernel, it can run
What
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)
<<machine container>>
Low level: chroot on steroids
Can also
not
have its own /sbin/init
Container = isolated processes
Share kernel with host
<<application container>>
VMs vs Containers
Why are Docker Containers Lightweight?
What are the Basics of a Docker System?
Changes and Updates
Demo Time
Ecosystem Support
Operating systems
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
OpenStack
Docker integration into NOVA (& compatibility with Glance, Horizon, etc.) accepted for Havana release
Private PaaS
OpenShift, Solum (Rackspace, OpenStack), Other TBA
Public PaaS
Deis, Voxoz, Cocaine (Yandex), Baidu PaaS
Public IaaS
Native support in Rackspace, Digital Ocean,+++
AMI (or equivalent) available for AWS & other
DevOps Tools
Integrations with Chef, Puppet, Jenkins, Travis, Salt, Ansible +++
Orchestration tools
Mesos, Heat, ++
Shipyard & others purpose built for Docker
Applications
1000’s of Dockerized applications available at index.docker.io
Docker Futures
Docker 0.7 (current release)
Fedora compatibility
Reduce kernel dependencies
Device mapper
Container linking
Docker 0.8 (Dec)
Shrink and stabilize Core
Provide stable, pluggable API
RHEL compatibility
Nested containers
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?
www.docker.io
Documentation
Getting started (tutorial, installation, guide, etc)
Introductory
whitepaper
Github:
dotcloud/docker
IRC: freenode #docker
Google Group:
docker-user
Twitter:
@docker
Meetups:
www.docker.io/meetups