= data-x=’-3000’ data-y=’-2000’ data-scale=’4’ id=’title’ ## Container Solutions ## <div style="font-size:small;">From chroot to rkt, Sandstorm.io and even Mesos</div> ### Jan Wagner waja@cyconet.org



= data-x=’0’ data-y=’-2000’ data-scale=’4’ id=’first’ ## First things first

Containers will solve security!


= data-x=’0’ id=’chroot’ ## Simple separation


= data-x=’1200’ id=’real_separation’ ## Beginning of real separation


= data-x=’2400’ id=’linux_separation1’ ## Early separations for Linux


= data-x=’0’ data-y=’1000’ id=’containers1’ ## Linux Containers


= data-x=’1200’ data-y=’1000’ id=’containers2’ ## LXC


= data-x=’2400’ data-y=’1000’ id=’containers3’ ## Docker


= data-x=’3600’ data-y=’1000’ id=’containers4’ ## sandstorm.io

Grains: Fine-grained Object Containers


= data-x=’10000’ data-y=’-1000’ id=’dockervslxc’ ## Docker vs LXC

LXC

Docker


= data-x=’11200’ data-y=’-1000’ id=’dockervslxc2’ ## Docker vs LXC

LXC vs Docker


= data-x=’12400’ data-y=’-1000’ id=’dockervslxc3’ ## Docker vs LXC

Docker has compared to LXC


= data-x=’0’ data-y=’2000’ id=’docker1’ ## VM vs. Docker vs. LXC

Virtual Machines vs Docker


= data-x=’1200’ data-y=’2000’ id=’docker2’ ## What might be the advantages of Docker


= data-x=’2400’ data-y=’2000’ id=’docker3’ ## Docker architecture

Docker architecture


= data-x=’3600’ data-y=’2000’ id=’docker4’ ## Starting Docker

Starting nginx in Docker


= data-x=’4800’ data-y=’2000’ id=’docker5’ ## Dockerfiles

Building nginx container with Dockerfile


= data-x=’6000’ data-y=’2000’ id=’docker6’ ## Docker - user data?

&#36; telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET / HTTP/1.1
HOST: localhost
[...]
<title\>Welcome to nginx on Debian!</title\>
[...]

= data-x=’7200’ data-y=’2000’ id=’docker7’ ## Docker - persistent data

&#36; mkdir -p /tmp/nginx/ && \
  echo "Hello world" > /tmp/nginx/index.html && \
  docker run -d -p 80:80 -v /tmp/nginx/:/var/www/html \
  debian/nginx nginx
&#36; telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET / HTTP/1.1
HOST: localhost

HTTP/1.1 200 OK
[...]
Hello world

= data-x=’8400’ data-y=’2000’ id=’docker8’ ## Docker - Layered Filesystems


= data-x=’9600’ data-y=’2000’ id=’docker9’ ## Docker - storage driver

Singe Linux Machine vs. Mesos Cluster


= data-x=’10800’ data-y=’2000’ id=’docker10’ ## Docker - Updating your OS (packages)


= data-x=’12000’ data-y=’2000’ id=’docker11’ ## Docker - Automate image creation


= data-x=”13200” data-y=’2000’ id=’docker12’ ## Docker - Image considerations


= data-x=’14400’ data-y=’2000’ id=’docker13’ ## Docker - Things are going to be very different in production


= data-x=’15600’ data-y=’2000’ id=’docker14’ ## Docker - Things you wanna know


= data-x=’16800’ data-y=’2000’ id=’docker15’ ## Docker Ecosystem


= data-x=’18000’ data-y=’2000’ id=’docker16’ ## Docker Ecosystem


= data-x=’19200’ data-y=’2000’ id=’docker17’ ## Docker - Windows

Windows - docker version

Windows - docker images


= data-x=’20400’ data-y=’2000’ id=’docker18’ ## Docker - Video Tutorials


= data-x=’0’ data-y=’-2000’ id=’beyonddocker1’ ## Going Beyond


= data-x=’1200’ data-y=’-2000’ id=’beyonddocker2’ ## Rise of the Datacenter OS - Apache Mesos

Singe Linux Machine vs. Mesos Cluster


= data-x=’2400’ data-y=’-2000’ id=’beyonddocker3’ ## Rise of the Datacenter OS - Apache Mesos


= data-x=’3600’ data-y=’-2000’ id=’beyonddocker4’ ## Docker meets Mesos


= data-x=’-3000’ data-y=’-3000’ data-scale=’4’ id=’againwhatlearned’ ## Conclusion

Shit in, shit out!


= data-x=’1000’ data-y=’4000’ id=’credits’

Credits


= data-x=’1000’ data-y=’4000’ id=’credits’

Credits


= data-x=’-3000’ data-y=’1000’ data-scale=’4’ id=’slides’

Slides