Docker
Lass mal containern
Julian “mino”
GPN15 - 04.06.2015
2
Julian “mino”
Docker
!
Karlsruhe
gpn15@lab10.de
twitter.com/julianklinck"
#
$
Interessen:
• Netzwerke
• Hardware
• Cocktails
• Hacking
• Musik- und Lichttechnik
3
Julian “mino”
Docker
!
Karlsruhe
jklinck@ocedo.com
#
$
Docker:
• Beruflich seit 2014
• SDN Cloud
4
Inhalt %
1 2 3 4
Software Deployment VM vs. Container Basics Container Format
5 6 7 8
Tools Sicherheit Zukunft Q & A
Dockerfile, Docker Daemon,
Docker Hub
Layers
Compose, Swarm, Kitematic Angriffsvektoren LXD, Rocket, ClearLinux
Docker
Software Deployment
Vergangenheit und Jetzt
&
6
Docker '
Docker
Das Problem
7
Klassisch &
Docker
Hast du ein Backup davor gemacht?
Server
O/S
Libraries
Application
Monolithisch
8
Klassisch &
Docker
Wir brauchen da noch…
Server
O/S
Libraries
Application Application
APP 0 APP 1
9
Klassisch &
Docker
Wir brauchen da noch…
Server
O/S
Libraries
Application
Libraries
Application
APP 0 APP 1
10
Klassisch &
Docker
Wir müssen bei PHP4.0 bleiben!
Server
O/S
PHP4
Application
PHP4.3
Application
APP 0 APP 1
Dependency Hell
11
Klassisch &
Docker
Der neue Server ist da
Server
O/S
Libraries
Application
Monolithisch
Libraries
Application
APP 0 APP 1
O/S
Server
• Teuer
• Verschwenderisch
• Schwer zu managen
VM vs. Container(
13
Virtualisierung )
Docker
Da sparen wir ja richtig Geld!
Server
O/S
Libraries
Application
Monolithisch
Libraries
Application
APP 0 APP 1
O/S
Virtualization
• Komplexität
• Overhead
14
Container )
Docker
Der heilige Gral
Server
O/S
Libraries
Application
Monolithisch
Libraries
Application
APP 0 APP 1
• Komplexität
Container 0 Container 1
15
Docker )
Docker
Eine Applikation
Applikation
APP 0
16
Docker )
Docker
Mehr als eine Applikation
Webserver
APP 0
Webshop Code
Datenbankserver
Mailserver
17
Docker )
Docker
Unterteilung in mehrere Container
Webserver
APP 0
Webshop Code Datenbankserver Mailserver
Container 0 Container 1 Container 2 Container 3
Server
O/S
“One process per container”
18
Docker )
Docker
Alles voneinander getrennt
Webserver
APP 0
Webshop Code Datenbankserver Mailserver
Container 0 Container 1 Container 2 Container 3
Server
O/S
APP 1
Homepage
Container 4
CMS Frontend CMS Backend
Container 5 Container 6
APP 2
19
Docker )
Docker
Definierte Zugriffsmöglichkeiten
Webserver
APP 0
Webshop Datenbankserver Mailserver
Container 0 Container 1 Container 2 Container 3
Server
O/S
APP 1
Homepage
Container 4
CMS Frontend CMS Backend
Container 5 Container 6
APP 2
Basics' Dockerfile, Docker Daemon, Docker Hub
21
Docker '
Docker
Offene Plattform für:
• Entwickler
• Admins
“Deploy everything nearly everywhere reliably and consistently”
Deploy everything:
• Webapps
• Backends
• Databases
• Message Queues
• Proxys
• …
Deploy everywhere:
• Linux Server
• VMs or Bare-Metal
• Any distro
• Kernel 3.8+
• x86_64
22
Dockerfile '
Docker
Die Baunaleitung
23
Docker CLI '
Docker
Das Werkzeug
Quelle:
24
Docker CLI '
Docker
Das Werkzeug
Quelle:
25
Basis Komponenten '
Docker
Docker Daemon
• Root Prozess
• Docker API
Docker Hub
• Webservice
• Image Speicher
• Public Registry/Repository
26
Image & Container '
Docker
Image
• Name
• Dockerfile step-by-step
• Applikations Abbild
Container
• Name
• Image als Basis
• Runtime
27
Docker Prozess '
Docker
Quelle:
Container Format* Layers
29
Layer *
Docker
Quelle:
• Sub-Layers
• Top-Layer Union Mount
• Copy-On-Write
30
Layer *
Docker
Quelle:
• Layer können wiederbenutzt werden
Apache
Ubuntu 14.04
MOD_PERL
ICINGA
PHP5
WORDPRESS
UNION MOUNT UNION MOUNT
APP 0 APP 1
31
Layer *
Docker
Quelle:
• Layer können wiederbenutzt werden
Apache
Ubuntu 14.04
MOD_PERL
ICINGA
PHP5
WORDPRESS
UNION MOUNT UNION MOUNT
APP 0 APP 1
UNION MOUNT
APP 2
• Speichereffizienz
Tools+ Compose, Swarm, Kitematic
33
Compose +
Docker
Applikationen
• Multiple Container
• Abhängigkeiten
Verwaltungswerkzeug
• “docker-compose.yml”
• Start, Stop, Rebuild…
Quelle:
Container Management
34
Swarm +
Docker
Cluster
• Multiple Docker Daemons
• Verwaltung
• Docker API kompatibel
Docker Daemon Clustering
Quelle:
35
Kitematic +
Docker
Docker GUI + VM
• Klicki-Bunti
• Installer
• VirtualBox
• Minimal Docker OS
• Suche im Docker Hub
Docker für Mac / Windows
Quelle:
Sicherheit, Angriffsvektoren
37
Angriffsvektoren ,
Docker
• Docker Daemon
• Root Rechte
• Docker API
• Lokaler socket
• HTTP optional
• HTTP(s) optional
• Kernel
• Selinux, AppArmor
• User Fehler
• Container Capabilities
• Volume Mounts
Zukunft) LXD, Rocket, ClearLinux
39
Zukunfsprojekte )
Docker
Docker ist nicht der Weisheit letzter Schluss
LXD
DANKE FÜR DIE AUFMERKSAMKEIT
FRAGEN?
-
ARCAMA
VIEL SPASS AUF DER GPN15

Docker Einführung @GPN15