Geoffrey Bachelet – @ubermuda
What it is. What it can do for you.
Slide 2
Slide 2 text
Who am I?
• Geoffrey Bachelet
• @ubermuda
• Then: Lagardère, SensioLabs,
KnpLabs, and PMSIPilot.
• Now: Stage1, Gustave,
Freelance.
Slide 3
Slide 3 text
Go!
Slide 4
Slide 4 text
"Container Engine"
Based on the Linux kernel's LXC instructions
Processes and resources isolation
"chroot" on steroids / super lightweight VMs
Slide 5
Slide 5 text
Containers vs VMs
LXC / Jails / etc
Use the host's kernel
Boots in seconds
0 overhead, almost
Easy to pass around
Hypervisor
Boots a complete OS
Boots in... more time.
All an OS' overhead
Several Go images
$
docker
run
-‐name
mysql-‐data
m6web/data
$
docker
run
-‐name
redis
m6web/redis
$
docker
run
-‐-‐volumes-‐from
mysql-‐data
-‐name
mysql
m6web/mysql
$
docker
run
...
\
-‐link
redis:redis
\
-‐link
mysql:mysql
\
m6web/symfony2
Slide 71
Slide 71 text
$
docker
run
-‐name
mysql-‐data
m6web/data
$
docker
run
-‐name
redis
m6web/redis
$
docker
run
-‐-‐volumes-‐from
mysql-‐data
-‐name
mysql
m6web/mysql
$
docker
run
...
\
-‐link
redis:redis
\
-‐link
mysql:mysql
\
m6web/symfony2
Slide 72
Slide 72 text
No content
Slide 73
Slide 73 text
And more!
• docker run -d, attach, logs, top, ...
• Orchestration (https://github.com/marmelab/gaudi)
• Docker Index / local Index
• Docker Remote API
• Dockerfile: USER, WORKDIR, ONBUILD, ...
• ...
Slide 74
Slide 74 text
Concepts recap.
• An image is like a VM image, it contains the hard-
drive and some configuration.
• Images can be pushed and pulled from an index.
• A container is a running instance of an image.
Slide 75
Slide 75 text
Concepts recap.
• You can commit a terminated container, and you get
a reusable image representing the state of that
container.
• Volumes are like shared directories. Containers can
share zero or many volumes.
• Containers can be linked to one another.