SlideShare a Scribd company logo
Introduction to Docker
November, 2013
Contents
• Introduction to Docker, Containers, and the Matrix from Hell
• Why people care: Separation of Concerns
• Technical Discussion
• Ecosystem
• Use Cases
• Docker Futures
• Advanced topics: Networking, Data
• OpenStack
• Learn More
In the 8 months since we launched
•
•
•
•

>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…and 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
Why all the excitement?
User DB

Static website

postgresql + pgv8 + v8

nginx 1.5 + modsecurity + openssl + bootstrap 2

Background workers
Python 3.0 + celery + pyredis + libcurl + ffmpeg + libopencv + nodejs +
phantomjs

Queue

Analytics DB

Redis + redis-sentinel

hadoop + hive + thrift + OpenJDK

Web frontend
Ruby + Rails + sass + Unicorn

API endpoint

Do services and apps
interact
appropriately?

Multiplicity of Stacks

The Challenge

Development VM

Production Cluster
Public Cloud

QA server
Disaster recovery

Contributor’s laptop

Customer Data Center
Production Servers

Can I migrate
smoothly and
quickly?

Multiplicity of
hardware
environments

Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client
The Matrix From Hell
Static website

?

?

?

?

?

?

?

Web frontend

?

?

?

?

?

?

?

Background workers

?

?

?

?

?

?

?

User DB

?

?

?

?

?

?

?

Analytics DB

?

?

?

?

?

?

?

Queue

?

?

?

?

?

?

?

Development
VM

QA Server

Single Prod
Server

Onsite
Cluster

Public Cloud

Contributor’s
laptop

Customer
Servers
Multiplicity of Goods

Do I worry about
how goods interact
(e.g. coffee beans
next to spices)

Can I transport quickly
and smoothly
(e.g. from boat to train
to truck)

Multipilicity of
methods for
transporting/storing

Cargo Transport Pre-1960
Also a matrix from hell
?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?
A standard container that is
loaded with virtually any
goods, and stays sealed until
it reaches final delivery.
…in between, can be loaded and
unloaded, stacked, transported
efficiently over long distances,
and transferred from one mode
of transport to another

Can I transport
quickly and smoothly
(e.g. from boat to
train to truck)

Multiplicity of
methods for
transporting/storing

Do I worry about
how goods interact
(e.g. coffee beans
next to spices)

Multiplicity of Goods

Solution: Intermodal Shipping Container
Static website

User DB

Web frontend

Queue

Analytics DB

An engine that enables any
payload to be encapsulated
as a lightweight, portable,
self-sufficient container…

Multiplicity of
hardware
environments

Development
VM

QA server

Customer Data
Center

Public Cloud

Production
Cluster

Contributor’s
laptop

Can I migrate
smoothly and quickly

…that can be manipulated using
standard operations and run
consistently on virtually any
hardware platform

Do services and apps
interact
appropriately?

Multiplicity of Stacks

Docker is a shipping container system for
code
Docker eliminates the matrix from Hell
Static website

Web frontend

Background workers

User DB

Analytics DB

Queue

Development
VM

QA Server

Single Prod
Server

Onsite
Cluster

Public Cloud

Contributor’s
laptop

Customer
Servers
Why Developers Care
• Build once…(finally) run anywhere*
• A clean, safe, hygienic and 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? That’s the power of Docker

* With the 0.7 release, we support any x86 server running a modern Linux kernel (3.2+ generally. 2.6.32+ for RHEL 6.5+,
Fedora, & related)
Why Devops Cares?
• 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
• Dan the Developer
•

Worries about what’s ―inside‖ the
container
•

His Apps

•

•

His Package Manager

•

His Data

All Linux servers look the same

Worries about what’s ―outside‖
the container
•
•
•
•

His Libraries

•

•

His code

•

• Oscar the Ops Guy

•

Logging
Remote access
Monitoring
Network config

All containers start, stop, copy,
attach, migrate, etc. the same
way
More technical explanation
WHY
• Run everywhere
• Regardless of kernel version
(2.6.32+)
• 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
• i.e. if it can run on a Linux
kernel, it can run

WHAT
• High Level—It’s 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—It’s chroot on
steroids
• Can also not have its own
/sbin/init
• Container=isolated processes
• Share kernel with host
• No device emulation (neither
HVM nor PV) from host)
• <<application container>>
Containers vs. VMs
App
A

App
A’

App
B

Bins/
Libs

Bins/
Libs

Bins/
Libs

Guest
OS

Guest
OS
Guest
OS

Guest
OS
Guest
OS

VM

Containers are isolated,
but share OS and, where
appropriate, bins/libraries
…result is significantly faster deployment,
much less overhead, easier migration,
faster restart

Host OS

Host OS

Server

Server

Docker

Bins/Libs

App B’

App B’

App B’

Bins/Libs

App B

App A’

Hypervisor (Type 2)

App A

Container
Why are Docker containers lightweight?
VMs

Bins/
Libs

Bins/
Libs

Bins/
Libs

Guest
OS

Guest
OS
Guest
OS

Bins/
Libs

Original App
(No OS to take
up space, resources,
or require restart)

VMs
Every app, every copy of an
app, and every slight modification
of the app requires a new virtual server

App Δ

App
A

App
A

App
A
Bins/

App
A’

App
A

Guest
OS

Containers

Copy of
App
No OS. Can
Share bins/libs

Modified App
Copy on write
capabilities allow
us to only save the diffs
Between container A
and container
A’
What are the basics of the Docker system?
Container A

Push

Docker
Container
Image
Registry
Search

Run

Build
Dockerfile
For
A

Docker

Container C

Host 1 OS (Linux)

Container B

Docker Engine

Container A

Source
Code
Repository

Pull

Host 2 OS (Linux)
Changes and Updates
Push

App Δ

App
A

Bins/

Bins/
Libs

Docker
Container
Image
Registry

Container
Mod A’

Container
Mod A’’

App Δ

Base
Container
Image

Bins/
Libs

Bins/

App
A
Bins/
Libs

Bins/

App
A’’

Update

Docker Engine
Host is now running A’’

Docker Engine
Host running A wants to upgrade to A’’.
Requests update. Gets only diffs
Ecosystem Support
•

Operating systems
•
•
•

•

OpenStack
•

•

Integrations with Chef, Puppet, Jenkins, Travis, Salt, Ansible +++

Orchestration tools
•
•

•

Native support in Rackspace, Digital Ocean,+++
AMI (or equivalent) available for AWS & other

DevOps Tools
•

•

Deis, Voxoz, Cocaine (Yandex), Baidu PaaS

Public IaaS
•
•

•

OpenShift
Solum (Rackspace, OpenStack)
Other TBA

Public PaaS
•

•

Docker integration into NOVA (& compatibility with Glance, Horizon, etc.) accepted for Havana release

Private PaaS
•
•
•

•

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

Mesos, Heat, ++
Shipyard & others purpose built for Docker

Applications
•

1000’s of Dockerized applications available at index.docker.io
Use Cases
• Ted Dziuba on the Use of Docker for Continuous Integration at Ebay Now
• https://speakerdeck.com/teddziuba/docker-at-ebay
• http://www.youtube.com/watch?feature=player_embedded&v=0Hi0W4gX--4

• Sasha Klizhentas on use of Docker at Mailgun/Rackspace
• http://www.youtube.com/watch?feature=player_embedded&v=CMC3xdAo9RI

• Sebastien Pahl on use of Docker at CloudFlare
• http://www.youtube.com/watch?feature=player_embedded&v=-Lj3jt_-3r0

• Cambridge HealthCare
• http://blog.howareyou.com/post/62157486858/continuous-delivery-with-docker-and-jenkinspart-i

• Red Hat Openshift and Docker
• https://www.openshift.com/blogs/technical-thoughts-on-openshift-and-docker
Use Cases—From Our Community
Use Case
Clusters

Examples
Building a MongoDB cluster using docker

Link
http://bit.ly/1acbjZf

Build your own PaaS

Production Quality MongoDB Setup with Docker
Wildfly cluster using Docker on Fedora
OpenSource PaaS built on Docker, Chef, and Heroku Buildpacks

http://bit.ly/15CaiHb
http://bit.ly/1bClX0O
http://deis.io

Web Based
Environment for
Instruction

JiffyLab – web based environment for the instruction, or lightweight use of, Python
and UNIX shell

http://bit.ly/12oaj2K

Easy Application
Deployment

Deploy Java Apps With Docker = Awesome
How to put your development environment on docker
Running Drupal on Docker
Installing Redis on Docker
Docker makes creating secure sandboxes easier than ever

http://bit.ly/11BCvvu
http://bit.ly/1b4XtJ3
http://bit.ly/15MJS6B
http://bit.ly/16EWOKh
http://bit.ly/13mZGJH

Memcached as a Service
Multi-cloud Deployment with Docker

http://bit.ly/11nL8vh
http://bit.ly/1bF3CN6

Next Generation Continuous Integration & Deployment with dotCloud’s Docker and
Strider
Testing Salt States Rapidly With Docker

http://bit.ly/ZwTfoy

Docker Desktop: Your Desktop Over SSH Running Inside Of A Docker Container

http://bit.ly/14RYL6x

Create Secure
Sandboxes
Create your own SaaS
Automated Application
Deployment
Continuous Integration
and Deployment

Lightweight Desktop
Virtualization

http://bit.ly/1eFBtcm
Docker Futures*
• Docker 0.7 (current release)
•
•
•
•

LXC

Docker 0.1-0.6
AUFS

Docker
0.8+

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
• We will consider this ―production ready‖

• Docker 0.9 (Jan)
• Docker 1.0 (Feb)
• We will offer support for this product
* We shoot for time based releases (1x/5wks), features are targeted, but not guaranteed for particular releases
Advanced topics
• Data
•

Today: Externally mounted volumes
•
•

Share volumes between containers
Share volume between a containers and underlying hosts
•
•

•
•

•

high-performance storage backend for your production database
making live development changes available to a container, etc.

Optional: specify memory limit for containers, CPU priority
Device mapper/ LVM snapshots in 0.7

Futures:
•
•
•
•

I/O limits
Container resource monitoring (CPU & memory usage)
Orchestration (linking & synchronization between containers)
Cluster orchestration (multi-host environment)

• Networking
•

Supported today:
•

UDP/TCP port allocation to containers
•
•

•

IP allocation to containers
•

•

specify which public port to redirect. If you don’t specify a public port, Docker will revert to allocating a random public port.
Docker uses IPtables/netfilter
Docker uses virtual interfaces, network bridge,

Futures:
•
•
•

See Pipework (Upstream) : Software-Defined Networking for Linux Containers (https://github.com/jpetazzo/pipework)
Certain pipework concepts will move from upstream to part of core Docker
Additional capabilities come with libvirt support in 0.8-0.9 timeframe
OpenStack / Docker
New hypervisor to enable Nova to deploy Linux containers
Why Docker + OpenStack
• Alternative to VMs within OpenStack-today
• Easier deployment of OpenStack itself-near future
• Cross cloud application deployment
• At OpenStack Summit we will show:
• Building and testing an application from source
• Running on a laptop
• Running it, without modification or noticeable downtime, on a public
cloud
• Running it, without modification or noticeable downtime, on an
openstack cluster
• Doing all of the above using Nova, Glance and Horizon

• Containers orchestration with OpenStack Heat (Demo at
summit)
Why a new hypervisor?
• Nova a computing controller for OpenStack
• Nova support for containers is minimal (via LibVirt)
• Enables control of Docker through OpenStack projects (ex:
deploy containers via Horizon Web UI)
Want to learn more?
• www.docker.io:
• Documentation
• Getting started: interactive tutorial, installation instructions, getting
started guide,
• About: Introductory whitepaper: http://www.docker.io/the-whole-story/

• Github: dotcloud/docker
• IRC: freenode/#docker
• Google groups: groups.google.com/forum/#!forum/docker-user
• Twitter: follow @docker
• Meetups: Scheduled for Boston, San Francisco, Austin, London, Paris,
Boulder…and Nairobi. https://www.docker.io/meetups/
www.docker.io

More Related Content

PDF
Docker Introduction
PPTX
Docker intro
PPTX
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
PPTX
Docker introduction &amp; benefits
PDF
Introduction to Docker
PDF
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
PPTX
Docker Basics
Docker Introduction
Docker intro
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker introduction &amp; benefits
Introduction to Docker
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
Docker Basics

What's hot (20)

PDF
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
PDF
Introduction to docker
PPTX
Getting started with Docker
PPT
Docker introduction
PDF
Docker Introduction
PPTX
Introduction to docker
PDF
Introduction to Docker Compose
PPTX
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
PPTX
Docker introduction (1)
PPTX
What is Docker
PDF
Introduction to container based virtualization with docker
PDF
Introduction to Docker - VIT Campus
PPTX
Docker 101 : Introduction to Docker and Containers
PDF
Docker 101: Introduction to Docker
PDF
PPT
presentation on Docker
PDF
Docker Swarm 0.2.0
PDF
Docker in real life
PDF
Docker Introduction
PPTX
Docker and kubernetes
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
Introduction to docker
Getting started with Docker
Docker introduction
Docker Introduction
Introduction to docker
Introduction to Docker Compose
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
Docker introduction (1)
What is Docker
Introduction to container based virtualization with docker
Introduction to Docker - VIT Campus
Docker 101 : Introduction to Docker and Containers
Docker 101: Introduction to Docker
presentation on Docker
Docker Swarm 0.2.0
Docker in real life
Docker Introduction
Docker and kubernetes
Ad

Viewers also liked (20)

PDF
Integrating Docker EE into Société Générale's Existing Enterprise IT Systems
PDF
A Gentle Introduction To Docker And All Things Containers
PDF
Docker Birthday #3 - Intro to Docker Slides
PPTX
Immutable infrastructure with Docker and EC2
PPTX
Why Docker
PPTX
Introduction to Docker - 2017
PPTX
Docker 101 - Nov 2016
PDF
Docker and the Linux Kernel
PPT
Team Virtual Technology Presentation
PPTX
DockerCon Keynote Ben Golub
PPTX
Virtual technology
PDF
Docker introduction
PPTX
Cluster computing
PDF
Docker Basics
PPTX
Docker introduction for the beginners
PPT
Cluster Computers
PDF
Docker by Example - Basics
PDF
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
PDF
Docker and Go: why did we decide to write Docker in Go?
PPTX
vSphere Integrated Containers 101 and End-User Workflow
Integrating Docker EE into Société Générale's Existing Enterprise IT Systems
A Gentle Introduction To Docker And All Things Containers
Docker Birthday #3 - Intro to Docker Slides
Immutable infrastructure with Docker and EC2
Why Docker
Introduction to Docker - 2017
Docker 101 - Nov 2016
Docker and the Linux Kernel
Team Virtual Technology Presentation
DockerCon Keynote Ben Golub
Virtual technology
Docker introduction
Cluster computing
Docker Basics
Docker introduction for the beginners
Cluster Computers
Docker by Example - Basics
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
Docker and Go: why did we decide to write Docker in Go?
vSphere Integrated Containers 101 and End-User Workflow
Ad

Similar to Docker introduction (20)

PPTX
Intro Docker october 2013
PPTX
Intro to Docker November 2013
PPTX
Intro to Docker October 2013
PPTX
The challenge of application distribution - Introduction to Docker (2014 dec ...
PPTX
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
PPTX
OpenStack Summit
PDF
Docker and OpenStack Boston Meetup
PPTX
OpenStack Boston
PPTX
Docker open stack boston
PPTX
Webinar Docker Tri Series
PPTX
ma-formation-en-Docker-jlklk,nknkjn.pptx
PPTX
Docker intro
PPTX
Docker intro
PPTX
Cont0519
PDF
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
PDF
Application Deployment on Openstack
PPTX
Docker-Intro
PPTX
Docker - Portable Deployment
PDF
Docker Introduction
Intro Docker october 2013
Intro to Docker November 2013
Intro to Docker October 2013
The challenge of application distribution - Introduction to Docker (2014 dec ...
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
OpenStack Summit
Docker and OpenStack Boston Meetup
OpenStack Boston
Docker open stack boston
Webinar Docker Tri Series
ma-formation-en-Docker-jlklk,nknkjn.pptx
Docker intro
Docker intro
Cont0519
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Application Deployment on Openstack
Docker-Intro
Docker - Portable Deployment
Docker Introduction

More from dotCloud (20)

PDF
Docker at Spotify - Dockercon14
PPTX
John Engates Keynote at Dockercon 14
PDF
Building a smarter application Stack by Tomas Doran from Yelp
PDF
Are VM Passé?
PDF
OpenStack - Docker - Rackspace HQ
PDF
Docker in pratice -chenyifei
PDF
Wot2013云计算架构师峰会 -陈轶飞2
PDF
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
PDF
Introduction to Docker and all things containers, Docker Meetup at RelateIQ
PPTX
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire
PDF
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
PPTX
Dockerizing stashboard - Docker meetup at Twilio
PDF
Dockerizing your applications - Docker workshop @Twitter
PDF
Introduction to Docker - Docker workshop @Twitter
PDF
Docker worshop @Twitter - How to use your own private registry
PDF
Docker links | Docker workshop #2 at Twitter
PPTX
Dockerfile Basics | Docker workshop #2 at twitter, 2013-11-05
PDF
[Open stack] heat + docker
PPTX
Dockerizing WordPress
PDF
Building images from dockerfiles
Docker at Spotify - Dockercon14
John Engates Keynote at Dockercon 14
Building a smarter application Stack by Tomas Doran from Yelp
Are VM Passé?
OpenStack - Docker - Rackspace HQ
Docker in pratice -chenyifei
Wot2013云计算架构师峰会 -陈轶飞2
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
Introduction to Docker and all things containers, Docker Meetup at RelateIQ
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Dockerizing stashboard - Docker meetup at Twilio
Dockerizing your applications - Docker workshop @Twitter
Introduction to Docker - Docker workshop @Twitter
Docker worshop @Twitter - How to use your own private registry
Docker links | Docker workshop #2 at Twitter
Dockerfile Basics | Docker workshop #2 at twitter, 2013-11-05
[Open stack] heat + docker
Dockerizing WordPress
Building images from dockerfiles

Recently uploaded (20)

PDF
Empathic Computing: Creating Shared Understanding
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
cloud_computing_Infrastucture_as_cloud_p
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Mushroom cultivation and it's methods.pdf
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Machine learning based COVID-19 study performance prediction
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Machine Learning_overview_presentation.pptx
PPT
Teaching material agriculture food technology
PPTX
1. Introduction to Computer Programming.pptx
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Getting Started with Data Integration: FME Form 101
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Empathic Computing: Creating Shared Understanding
Mobile App Security Testing_ A Comprehensive Guide.pdf
cloud_computing_Infrastucture_as_cloud_p
Per capita expenditure prediction using model stacking based on satellite ima...
Encapsulation_ Review paper, used for researhc scholars
Unlocking AI with Model Context Protocol (MCP)
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Mushroom cultivation and it's methods.pdf
NewMind AI Weekly Chronicles - August'25-Week II
Machine learning based COVID-19 study performance prediction
Diabetes mellitus diagnosis method based random forest with bat algorithm
Machine Learning_overview_presentation.pptx
Teaching material agriculture food technology
1. Introduction to Computer Programming.pptx
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Getting Started with Data Integration: FME Form 101
A comparative analysis of optical character recognition models for extracting...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025

Docker introduction

  • 2. Contents • Introduction to Docker, Containers, and the Matrix from Hell • Why people care: Separation of Concerns • Technical Discussion • Ecosystem • Use Cases • Docker Futures • Advanced topics: Networking, Data • OpenStack • Learn More
  • 3. In the 8 months since we launched • • • • >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…and 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
  • 4. Why all the excitement?
  • 5. User DB Static website postgresql + pgv8 + v8 nginx 1.5 + modsecurity + openssl + bootstrap 2 Background workers Python 3.0 + celery + pyredis + libcurl + ffmpeg + libopencv + nodejs + phantomjs Queue Analytics DB Redis + redis-sentinel hadoop + hive + thrift + OpenJDK Web frontend Ruby + Rails + sass + Unicorn API endpoint Do services and apps interact appropriately? Multiplicity of Stacks The Challenge Development VM Production Cluster Public Cloud QA server Disaster recovery Contributor’s laptop Customer Data Center Production Servers Can I migrate smoothly and quickly? Multiplicity of hardware environments Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client
  • 6. The Matrix From Hell Static website ? ? ? ? ? ? ? Web frontend ? ? ? ? ? ? ? Background workers ? ? ? ? ? ? ? User DB ? ? ? ? ? ? ? Analytics DB ? ? ? ? ? ? ? Queue ? ? ? ? ? ? ? Development VM QA Server Single Prod Server Onsite Cluster Public Cloud Contributor’s laptop Customer Servers
  • 7. Multiplicity of Goods Do I worry about how goods interact (e.g. coffee beans next to spices) Can I transport quickly and smoothly (e.g. from boat to train to truck) Multipilicity of methods for transporting/storing Cargo Transport Pre-1960
  • 8. Also a matrix from hell ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
  • 9. A standard container that is loaded with virtually any goods, and stays sealed until it reaches final delivery. …in between, can be loaded and unloaded, stacked, transported efficiently over long distances, and transferred from one mode of transport to another Can I transport quickly and smoothly (e.g. from boat to train to truck) Multiplicity of methods for transporting/storing Do I worry about how goods interact (e.g. coffee beans next to spices) Multiplicity of Goods Solution: Intermodal Shipping Container
  • 10. Static website User DB Web frontend Queue Analytics DB An engine that enables any payload to be encapsulated as a lightweight, portable, self-sufficient container… Multiplicity of hardware environments Development VM QA server Customer Data Center Public Cloud Production Cluster Contributor’s laptop Can I migrate smoothly and quickly …that can be manipulated using standard operations and run consistently on virtually any hardware platform Do services and apps interact appropriately? Multiplicity of Stacks Docker is a shipping container system for code
  • 11. Docker eliminates the matrix from Hell Static website Web frontend Background workers User DB Analytics DB Queue Development VM QA Server Single Prod Server Onsite Cluster Public Cloud Contributor’s laptop Customer Servers
  • 12. Why Developers Care • Build once…(finally) run anywhere* • A clean, safe, hygienic and 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? That’s the power of Docker * With the 0.7 release, we support any x86 server running a modern Linux kernel (3.2+ generally. 2.6.32+ for RHEL 6.5+, Fedora, & related)
  • 13. Why Devops Cares? • 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
  • 14. Why it works—separation of concerns • Dan the Developer • Worries about what’s ―inside‖ the container • His Apps • • His Package Manager • His Data All Linux servers look the same Worries about what’s ―outside‖ the container • • • • His Libraries • • His code • • Oscar the Ops Guy • Logging Remote access Monitoring Network config All containers start, stop, copy, attach, migrate, etc. the same way
  • 15. More technical explanation WHY • Run everywhere • Regardless of kernel version (2.6.32+) • 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 • i.e. if it can run on a Linux kernel, it can run WHAT • High Level—It’s 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—It’s chroot on steroids • Can also not have its own /sbin/init • Container=isolated processes • Share kernel with host • No device emulation (neither HVM nor PV) from host) • <<application container>>
  • 16. Containers vs. VMs App A App A’ App B Bins/ Libs Bins/ Libs Bins/ Libs Guest OS Guest OS Guest OS Guest OS Guest OS VM Containers are isolated, but share OS and, where appropriate, bins/libraries …result is significantly faster deployment, much less overhead, easier migration, faster restart Host OS Host OS Server Server Docker Bins/Libs App B’ App B’ App B’ Bins/Libs App B App A’ Hypervisor (Type 2) App A Container
  • 17. Why are Docker containers lightweight? VMs Bins/ Libs Bins/ Libs Bins/ Libs Guest OS Guest OS Guest OS Bins/ Libs Original App (No OS to take up space, resources, or require restart) VMs Every app, every copy of an app, and every slight modification of the app requires a new virtual server App Δ App A App A App A Bins/ App A’ App A Guest OS Containers Copy of App No OS. Can Share bins/libs Modified App Copy on write capabilities allow us to only save the diffs Between container A and container A’
  • 18. What are the basics of the Docker system? Container A Push Docker Container Image Registry Search Run Build Dockerfile For A Docker Container C Host 1 OS (Linux) Container B Docker Engine Container A Source Code Repository Pull Host 2 OS (Linux)
  • 19. Changes and Updates Push App Δ App A Bins/ Bins/ Libs Docker Container Image Registry Container Mod A’ Container Mod A’’ App Δ Base Container Image Bins/ Libs Bins/ App A Bins/ Libs Bins/ App A’’ Update Docker Engine Host is now running A’’ Docker Engine Host running A wants to upgrade to A’’. Requests update. Gets only diffs
  • 20. Ecosystem Support • Operating systems • • • • OpenStack • • Integrations with Chef, Puppet, Jenkins, Travis, Salt, Ansible +++ Orchestration tools • • • Native support in Rackspace, Digital Ocean,+++ AMI (or equivalent) available for AWS & other DevOps Tools • • Deis, Voxoz, Cocaine (Yandex), Baidu PaaS Public IaaS • • • OpenShift Solum (Rackspace, OpenStack) Other TBA Public PaaS • • Docker integration into NOVA (& compatibility with Glance, Horizon, etc.) accepted for Havana release Private PaaS • • • • 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 Mesos, Heat, ++ Shipyard & others purpose built for Docker Applications • 1000’s of Dockerized applications available at index.docker.io
  • 21. Use Cases • Ted Dziuba on the Use of Docker for Continuous Integration at Ebay Now • https://speakerdeck.com/teddziuba/docker-at-ebay • http://www.youtube.com/watch?feature=player_embedded&v=0Hi0W4gX--4 • Sasha Klizhentas on use of Docker at Mailgun/Rackspace • http://www.youtube.com/watch?feature=player_embedded&v=CMC3xdAo9RI • Sebastien Pahl on use of Docker at CloudFlare • http://www.youtube.com/watch?feature=player_embedded&v=-Lj3jt_-3r0 • Cambridge HealthCare • http://blog.howareyou.com/post/62157486858/continuous-delivery-with-docker-and-jenkinspart-i • Red Hat Openshift and Docker • https://www.openshift.com/blogs/technical-thoughts-on-openshift-and-docker
  • 22. Use Cases—From Our Community Use Case Clusters Examples Building a MongoDB cluster using docker Link http://bit.ly/1acbjZf Build your own PaaS Production Quality MongoDB Setup with Docker Wildfly cluster using Docker on Fedora OpenSource PaaS built on Docker, Chef, and Heroku Buildpacks http://bit.ly/15CaiHb http://bit.ly/1bClX0O http://deis.io Web Based Environment for Instruction JiffyLab – web based environment for the instruction, or lightweight use of, Python and UNIX shell http://bit.ly/12oaj2K Easy Application Deployment Deploy Java Apps With Docker = Awesome How to put your development environment on docker Running Drupal on Docker Installing Redis on Docker Docker makes creating secure sandboxes easier than ever http://bit.ly/11BCvvu http://bit.ly/1b4XtJ3 http://bit.ly/15MJS6B http://bit.ly/16EWOKh http://bit.ly/13mZGJH Memcached as a Service Multi-cloud Deployment with Docker http://bit.ly/11nL8vh http://bit.ly/1bF3CN6 Next Generation Continuous Integration & Deployment with dotCloud’s Docker and Strider Testing Salt States Rapidly With Docker http://bit.ly/ZwTfoy Docker Desktop: Your Desktop Over SSH Running Inside Of A Docker Container http://bit.ly/14RYL6x Create Secure Sandboxes Create your own SaaS Automated Application Deployment Continuous Integration and Deployment Lightweight Desktop Virtualization http://bit.ly/1eFBtcm
  • 23. Docker Futures* • Docker 0.7 (current release) • • • • LXC Docker 0.1-0.6 AUFS Docker 0.8+ 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 • We will consider this ―production ready‖ • Docker 0.9 (Jan) • Docker 1.0 (Feb) • We will offer support for this product * We shoot for time based releases (1x/5wks), features are targeted, but not guaranteed for particular releases
  • 24. Advanced topics • Data • Today: Externally mounted volumes • • Share volumes between containers Share volume between a containers and underlying hosts • • • • • high-performance storage backend for your production database making live development changes available to a container, etc. Optional: specify memory limit for containers, CPU priority Device mapper/ LVM snapshots in 0.7 Futures: • • • • I/O limits Container resource monitoring (CPU & memory usage) Orchestration (linking & synchronization between containers) Cluster orchestration (multi-host environment) • Networking • Supported today: • UDP/TCP port allocation to containers • • • IP allocation to containers • • specify which public port to redirect. If you don’t specify a public port, Docker will revert to allocating a random public port. Docker uses IPtables/netfilter Docker uses virtual interfaces, network bridge, Futures: • • • See Pipework (Upstream) : Software-Defined Networking for Linux Containers (https://github.com/jpetazzo/pipework) Certain pipework concepts will move from upstream to part of core Docker Additional capabilities come with libvirt support in 0.8-0.9 timeframe
  • 25. OpenStack / Docker New hypervisor to enable Nova to deploy Linux containers
  • 26. Why Docker + OpenStack • Alternative to VMs within OpenStack-today • Easier deployment of OpenStack itself-near future • Cross cloud application deployment • At OpenStack Summit we will show: • Building and testing an application from source • Running on a laptop • Running it, without modification or noticeable downtime, on a public cloud • Running it, without modification or noticeable downtime, on an openstack cluster • Doing all of the above using Nova, Glance and Horizon • Containers orchestration with OpenStack Heat (Demo at summit)
  • 27. Why a new hypervisor? • Nova a computing controller for OpenStack • Nova support for containers is minimal (via LibVirt) • Enables control of Docker through OpenStack projects (ex: deploy containers via Horizon Web UI)
  • 28. Want to learn more? • www.docker.io: • Documentation • Getting started: interactive tutorial, installation instructions, getting started guide, • About: Introductory whitepaper: http://www.docker.io/the-whole-story/ • Github: dotcloud/docker • IRC: freenode/#docker • Google groups: groups.google.com/forum/#!forum/docker-user • Twitter: follow @docker • Meetups: Scheduled for Boston, San Francisco, Austin, London, Paris, Boulder…and Nairobi. https://www.docker.io/meetups/