The only thing it can’t 

contain is your excitement.
Who am I?
John Le Drew
!








I’m @antz29 everywhere

http://antz29.com http://wisenoodles.com
An epic tale!
I want
to send my
chocolate… to the
WORLD!
You are
going to need
some boxes!
He made some chocolate…
… and he put it into boxes.
He put his chocolate
on a truck.
Tim the boxes of
chocolate on
trucks
specialist.
He put his chocolate
on a train.
Tom the boxes
of chocolate on
trains specialist
He put his chocolate
on a boat.
Brad the boxes
of chocolate on
boats specialist
So his chocolate
reached the world
(eventually)
But there was trouble
in paradise.
Willy’s friends were
really expensive.
Carrie the
container
specialist
Containers!
Trucks!
Trains!
Boats!
Multi-modal
Willy’s Friends
Carrie the
container
specialist
Willy’s (old) Friends
WTF has this got to
with Docker?!
MyAwsmAppA
PHP
MongoDB
Redis
NGINX
RabbitMQ
ElasticSearch
OSX
Windows
Dev

Server
CI

Server
Staging

Server
Prod.

Server
MyAwsmAppA
PHP
MongoDB
Redis
NGINX
RabbitMQ
ElasticSearch
VM
Guest OS
Hypervisor
Host OS
Server
MyAwsmAppA
PHP
MongoDB
Redis
NGINX
RabbitMQ
ElasticSearch
Guest OS
Hypervisor
Host OS
Server
VM
MyAwsmAppB
PHP
MongoDB
Memcache
NGINX
ElasticSearch
MyAwsmAppC
PHP
MySQL
Memcache
NGINX
ElasticSearch
Guest OS
VMVM
Guest OS
MyAwsmAppA
PHP
MongoDB
Redis
NGINX
RabbitMQ
ElasticSearch
MyAwsmAppA
Host OS
Server
MyAwsmAppB MyAwsmAppC
PHP
MongoDB
Redis
NGINX
RabbitMQ
MySQL
Memcache
ElasticSearch
Container Container Container
Docker
Docker
Registry
Docker
Registry
Docker
Client
Docker
Client
Key Components
Docker
Client
Docker Host
Docker
Host OS
Container 1
Container 2
Container 3
Container …
Docker
Registry
Under the hood
Images
BUILD
Under the hood
Registries
DISTRIBUTE
Under the hood
Containers
RUN
Docker Images
My Application Image
Ubuntu
Apache
MySQL
PHP
App Code
Docker Images
Base Image: ubuntu
apt-get install apache
apt-get install mysql-server
apt-get install php5
My Application Image
Ubuntu
Apache
MySQL
PHP
App Code rsync ./source/code /my/site
Docker Images
Base Image: ubuntu
apt-get install apache
apt-get install mysql-server
apt-get install php5
My Application Image
Ubuntu
Apache
MySQL
PHP
App Code rsync ./source/code /my/site
Dockerfile
Docker Registry
Docker
Client
Private
Registry
Public
Registry
Private
Registry
Firewall
UnionFile
System
Docker Containers
Read-Only Image
Read-Write Layer
Docker Containers
# docker run ubuntu /bin/echo 'Hello World'

Hello World
Pulls the ubuntu image
Sets up the read-write filesystem
Sets up the network interfaces
Sets up an IP address
Executes the process
Captures and provides the output
DEMO!

(uh oh)
Thank you and Questions
@antz29
john@wisenoodles.com

Docker : The only thing it can't contain is your excitement.