Docker Einführung @GPN15

41
Docker Lass mal containern Julian “mino” GPN15 - 04.06.2015

Transcript of Docker Einführung @GPN15

Page 1: Docker Einführung @GPN15

DockerLass mal containern

Julian “mino”

GPN15 - 04.06.2015

Page 2: Docker Einführung @GPN15

2

Julian “mino”

Docker

!

Karlsruhe

[email protected]

twitter.com/julianklinck "

#

$

Interessen:

• Netzwerke

• Hardware

• Cocktails

• Hacking

• Musik- und Lichttechnik

Page 3: Docker Einführung @GPN15

3

Julian “mino”

Docker

!

Karlsruhe

[email protected]

#

$

Docker:

• Beruflich seit 2014

• SDN Cloud

Page 4: Docker Einführung @GPN15

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

Page 5: Docker Einführung @GPN15

Software DeploymentVergangenheit und Jetzt

&

Page 6: Docker Einführung @GPN15

6

Docker '

Docker

Das Problem

Page 7: Docker Einführung @GPN15

7

Klassisch &

Docker

Hast du ein Backup davor gemacht?

Server

O/S

Libraries

Application

Monolithisch

Page 8: Docker Einführung @GPN15

8

Klassisch &

Docker

Wir brauchen da noch…

Server

O/S

Libraries

Application Application

APP 0 APP 1

Page 9: Docker Einführung @GPN15

9

Klassisch &

Docker

Wir brauchen da noch…

Server

O/S

Libraries

Application

Libraries

Application

APP 0 APP 1

Page 10: Docker Einführung @GPN15

10

Klassisch &

Docker

Wir müssen bei PHP4.0 bleiben!

Server

O/S

PHP4

Application

PHP4.3

Application

APP 0 APP 1

Dependency Hell

Page 11: Docker Einführung @GPN15

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

Page 12: Docker Einführung @GPN15

VM vs. Container(

Page 13: Docker Einführung @GPN15

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

Page 14: Docker Einführung @GPN15

14

Container )

Docker

Der heilige Gral

Server

O/S

Libraries

Application

Monolithisch

Libraries

Application

APP 0 APP 1

• Komplexität

Container 0 Container 1

Page 15: Docker Einführung @GPN15

15

Docker )

Docker

Eine Applikation

Applikation

APP 0

Page 16: Docker Einführung @GPN15

16

Docker )

Docker

Mehr als eine Applikation

Webserver

APP 0

Webshop Code

Datenbankserver

Mailserver

Page 17: Docker Einführung @GPN15

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”

Page 18: Docker Einführung @GPN15

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

Page 19: Docker Einführung @GPN15

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

Page 20: Docker Einführung @GPN15

Basics'Dockerfile, Docker Daemon, Docker Hub

Page 21: Docker Einführung @GPN15

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

Page 22: Docker Einführung @GPN15

22

Dockerfile '

Docker

Die Baunaleitung

Page 23: Docker Einführung @GPN15

23

Docker CLI '

Docker

Das Werkzeug

Quelle:

Page 24: Docker Einführung @GPN15

24

Docker CLI '

Docker

Das Werkzeug

Quelle:

Page 25: Docker Einführung @GPN15

25

Basis Komponenten '

Docker

Docker Daemon • Root Prozess • Docker API

Docker Hub • Webservice • Image Speicher • Public Registry/Repository

Page 26: Docker Einführung @GPN15

26

Image & Container '

Docker

Image • Name • Dockerfile step-by-step • Applikations Abbild

Container • Name • Image als Basis • Runtime

Page 27: Docker Einführung @GPN15

27

Docker Prozess '

Docker

Quelle:

Page 28: Docker Einführung @GPN15

Container Format*Layers

Page 29: Docker Einführung @GPN15

29

Layer *

Docker

Quelle:

• Sub-Layers • Top-Layer Union Mount • Copy-On-Write

Page 30: Docker Einführung @GPN15

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

Page 31: Docker Einführung @GPN15

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

Page 32: Docker Einführung @GPN15

Tools+Compose, Swarm, Kitematic

Page 33: Docker Einführung @GPN15

33

Compose +

Docker

Applikationen • Multiple Container • Abhängigkeiten

Verwaltungswerkzeug • “docker-compose.yml” • Start, Stop, Rebuild…

Quelle:

Container Management

Page 34: Docker Einführung @GPN15

34

Swarm +

Docker

Cluster • Multiple Docker Daemons • Verwaltung • Docker API kompatibel

Docker Daemon Clustering

Quelle:

Page 35: Docker Einführung @GPN15

35

Kitematic +

Docker

Docker GUI + VM • Klicki-Bunti • Installer

• VirtualBox • Minimal Docker OS

• Suche im Docker Hub

Docker für Mac / Windows

Quelle:

Page 36: Docker Einführung @GPN15

Sicherheit,Angriffsvektoren

Page 37: Docker Einführung @GPN15

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

Page 38: Docker Einführung @GPN15

Zukunft)LXD, Rocket, ClearLinux

Page 39: Docker Einführung @GPN15

39

Zukunfsprojekte )

Docker

Docker ist nicht der Weisheit letzter Schluss

LXD

Page 40: Docker Einführung @GPN15

DANKE FÜR DIE AUFMERKSAMKEIT

FRAGEN?

-

Page 41: Docker Einführung @GPN15

ARCAMA

VIEL SPASS AUF DER GPN15