Slide 1

Slide 1 text

Advance AWS Meetup - @okta– 05/06/2014 Brief introduction to Docker & AWS deployment Victor Vieux, Docker Inc. @vieux

Slide 2

Slide 2 text

What is docker ?

Slide 3

Slide 3 text

The Matrix From Hell

Slide 4

Slide 4 text

Another Matrix From Hell

Slide 5

Slide 5 text

Solution: the intermodal shipping container

Slide 6

Slide 6 text

Solved!

Slide 7

Slide 7 text

Solution to the deployment problem: the Linux container

Slide 8

Slide 8 text

Solved!

Slide 9

Slide 9 text

High level approach: lightweight VM •  own process space •  own network interface •  can run stuff as root •  can have it’s own /sbin/init (different from the host) “Machine Container”

Slide 10

Slide 10 text

Low level approach: chroot on steroids •  can also not have it’s own /sbin/init •  container = isolated process(es) •  share kernel with the host “Application Container”

Slide 11

Slide 11 text

What’s really docker ?

Slide 12

Slide 12 text

user@dockerhost:~$ docker run –it ubuntu bash root@1b55513ade2e:/# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 18048 1960 ? Ss 08:35 0:00 bash root 13 0.0 0.0 15276 1140 ? R+ 08:35 0:00 ps aux user@dockerhost:~$ docker run –d crosbymichael/redis 699eb403b54b user@dockerhost:~$ docker inspect 699eb403b54b "IPAddress": "172.17.0.2", "Ports": { ”6379/tcp": [{ "HostIp": "0.0.0.0", "HostPort": "49200" }] } Runtime for Linux containers

Slide 13

Slide 13 text

Standard format for containers and a place to share them •  Fetch an image from the public registry with “docker pull” •  Enter an image with “docker run“ and do some changes •  Record those changes with “docker commit”, repeat as many times as needed •  And then share the result with “docker push” on the public registry, or a private one

Slide 14

Slide 14 text

Deployment on:

Slide 15

Slide 15 text

EC2 – Amazon Linux •  Choose the last Amazon Linux AMI •  Launch & ssh into the instance sudo yum install –y docker sudo service docker start •  Docker 0.9 is installed

Slide 16

Slide 16 text

EC2 – Ubuntu •  Choose a 64Bit Ubuntu image •  In the Launch Instance Wizard, set #include https://get.docker.io as User data •  Launch & ssh into the instance •  Wait for the cloudinit script to finish •  Last version of docker is installed

Slide 17

Slide 17 text

EC2 – Ubuntu - Testing •  edit /etc/default/docker DOCKER_OPTS="-H 0.0.0.0:4243” •  Restart the docker daemon sudo service docker restart •  Open the port 4243 in the EC2 console •  On you laptop, set DOCKER_HOST $>export DOCKER_HOST=:4243 $>docker run fedora:20 ls

Slide 18

Slide 18 text

Elastic Beanstalk 1

Slide 19

Slide 19 text

Elastic Beanstalk 2 3

Slide 20

Slide 20 text

h"p://dockercon.com    

Slide 21

Slide 21 text

Thank you! Questions? http://docker.io http://docker.com @docker - @vieux