Post on 08-Aug-2015
DockerLass 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 DeploymentVergangenheit 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
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
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