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

Preview:

DESCRIPTION

Docker is an exciting new project that automates the deployment of any application as a lightweight, portable, self-sufficient container that will run virtually anywhere; like a virtual machine on steroids. In this talk I will introduce Docker, why you should be excited about it and show you how it will change your universe!

Citation preview

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

MongoDBRedis

NGINX

RabbitMQElasticSearch

OSX

Windows

DevServer

CIServer

StagingServer

Prod.Server

MyAwsmAppA

PHP

MongoDBRedis

NGINX

RabbitMQElasticSearch

VM

Guest OS

HypervisorHost OSServer

MyAwsmAppA

PHP

MongoDBRedis

NGINX

RabbitMQElasticSearch

Guest OS

HypervisorHost OSServer

VM

MyAwsmAppB

PHP

MongoDBMemcache

NGINX

ElasticSearch

MyAwsmAppC

PHP

MySQLMemcache

NGINX

ElasticSearch

Guest OS

VMVM

Guest OS

MyAwsmAppA

PHP

MongoDBRedis

NGINX

RabbitMQElasticSearch

MyAwsmAppA

Host OSServer

MyAwsmAppB MyAwsmAppC

PHP

MongoDBRedis

NGINX

RabbitMQ

MySQLMemcache

ElasticSearch

Container Container Container

Docker

Docker RegistryDocker Registry

Docker Client

Docker Client

Key Components

Docker Client

Docker Host

DockerHost OS

Container 1Container 2Container 3Container …

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

Union File 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

Recommended