SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Was gibt es Neues im
Docker-Universum?
Nicholas Dille
Docker Captain, Microsoft MVP
Nicholas Dille
Ehemann, Vater, Geek, Aikidoka
Microsoft MVP seit 2010
Docker Captain seit 2017
DevOps Engineer @ Haufe-Lexware
http://dille.name/blog
@NicholasDille
Was macht Docker so besonders?
Am Anfang waren logische Partitionen (LPARs)
Veröffentlicht 1972 von unseren Eltern
Dann kamen Linux Containers (LXC)
Veröffentlicht 2008 von unseren älteren Geschwistern
Schnittstelle zu Control Groups und Namespaces
Zuletzt erblickt Docker das Licht der Welt
Gegründet 2013 von Solomon Hykes
Revolution der Container-Verwaltung durch Automatisierung
Was sind Container?
#TBT: Container sind Prozessisolation
Umsetzung durch den Kernel
Ressourcen müssen geteilt werden
Container vs. virtuelle Maschinen
Andere Ebenen der Virtualisierung
Gemeinsame Hardware vs. gemeinsamer Kernel
Container sind eine weitere Option Hardware
Virtualisierung
OS OS
Prozess
Prozess
Prozess
Prozess
Hardware
Operating System
Prozess
Prozess
Prozess
Prozess
Was Docker bietet
Enterprise Edition
Community Edition
Docker CLI
Trusted RegistryUniversal Control Plane
Machinedockerd Docker Hub
Docker Certified
Das Moby Projekt
Angekündigt auf der DockerCon (Mai 2017)
Veröffentlichung der Komponenten von Docker CE
Bestandteile
runC / containerd / LinuxKit / SwarmKit
Notary / Registry / Compose
libnetwork / DataKit / BuildKit / VPNKit / InfraKit / HyperKit
Downstream-Projekte
Docker CE / EE
Balena (Container Engine für IoT)
Steuerung durch Technical Steering Committee
Was Docker bietet
Enterprise Edition
Community Edition
Moby
Docker CLI
SwarmKit
runC
Trusted RegistryUniversal Control Plane
Compose
Machinedockerd
InfraKit
HyperKit
VPNKit
BuildKit
DataKitRegistry
libnetwork
Docker Hub
Docker Certified
LinuxKit
Minimalistisches, unveränderliches Linux
Definition in YAML
Bauen mit Moby
Basiert auf containerd
Alles ist ein Container (auch System-Dienste)
Images basieren auf Alpine Linux
Images sind mit Notary signiert
Unterstützung diverser Plattformen
DEMO
https://github.com/nicholasdille/Sessions/blob/master/2017-11-
15%20Docker%20%40%20ContainerConf%20Mannheim/Demo1_LinuxKit.md
Linux kernel 4.9
Minimal init
containerd
Service
Containers
On-Boot
Containers
Shutdown
Containers
containerd
Verwaltung von Containern
Basiert auf runC (reine Runtime)
Fügt Pull und Push von Images hinzu
gRPC-API über UNIX-Socket
Kommandozeilenwerkzeug ctr
Gehört der CNCF
DEMO
https://github.com/nicholasdille/Sessions/blob/master/2017-11-
15%20Docker%20%40%20ContainerConf%20Mannheim/Demo2_containerd.md
InfraKit
containerd
SwarmKit
Docker
API
Docker
CLI
Docker
Compose
Docker
Build
Notary
Datenintegrität sicherstellen
Signieren beliebiger Daten
Prüfen von Signatur
Client/Server-Architektur
Grundlage für Docker Content Trust
Gehört der CNCF
DEMO
https://github.com/nicholasdille/Sessions/blob/master/2017-11-
15%20Docker%20%40%20ContainerConf%20Mannheim/Demo3_Notary.md
Server
Signer
Client
Signierte
Metadaten
Private
Schlüssel
12 Projekte
Docker im Container-Ökosystem
…spendete Spezifikation und runC (Juni 2015)
…spendete containerd (März 2017)
und Notary (Oktober 2017)
…initiierte
(April 2017)
Docker Kubernetes
Angekündigt auf der DockerCon EU (Oktober 2017)
Integration in Docker Universal Control Plane (UCP)
Verwaltung von Stacks auf SwarmKit und Kubernetes
Übersetzung von docker-compose.yml
Bundled Docker CLI and Kubernetes CLI
Installation auf neuen Nodes via Docker UCP
Enthalten in Docker für Mac
Enthalten in Docker für Windows
Docker für Mac/Windows installiert Kubernetes (single node)
Kubernetes
Enterprise Edition
Community Edition
Moby
Was Docker bietet
Docker CLI
SwarmKit
runC
Trusted RegistryUniversal Control Plane
Compose
Machinedockerd
InfraKit
HyperKit
VPNKit
BuildKit
DataKitRegistry
libnetwork
Docker Hub
Docker Certified
Linux Container on Windows (LCOW)
Linux-Container unter Windows
Voraussetzung ist Windows (Server) 1709
Benötigt Containers und Hyper-V
Linux-Container laufen unter Hyper-V
Jeder Linux-Container erhält eine dedizierte VM
Universelle Docker CLI
Es zeigt Container beider Plattformen an
DEMO
https://github.com/nicholasdille/Sessions/blob/master/2017-11-
15%20Docker%20%40%20ContainerConf%20Mannheim/Demo4_LCOW.md
Windows (Server) 1709
Containers und Hyper-V
nativ
nativ
VM
LinuxKit
Linux
Container
VM
LinuxKit
Linux
Container
Multi-Stage Builds
Neue Syntax für Dockerfile
Bauen in mehreren Schritten
Mehrere FROM-Abschnitte
Vorteile
Trennen von Build Env und Runtime
Kleinere Images
Weniger Pakete installiert
Pipelines statt Multi-Stage Builds
$ cat HelloWorld.java
class HelloWorld {
public static void main(String[] a) {
System.out.println("Hello world!");
}
}
$ cat Dockerfile
FROM openjdk:8-jdk as builder
COPY HelloWorld.java .
RUN javac HelloWorld.java
FROM openjdk:8-jre
COPY --from=builder /HelloWorld.class .
CMD [ "java", "HelloWorld" ]
Multi-Arch Images
Images funktionieren nur auf einer Plattform
Container laufen aber auf vielen Architekturen und Betriebssystemen
Erstellen „virtueller“ Images
Spezielles Manifest verweist auf
äquivalente Images unterschiedlicher Plattformen
https://github.com/estesp/manifest-tool
(by Docker Captain Phil Estes)
Offizielle Images sind bereits umgestellt
In der Tiefe von Stefan Scherer (Docker Captain)
https://youtu.be/kvJkKhkAnCM
web
web-linux-amd64 web-win-amd64
Manifest
Multi-Arch Images: openjdk
$ docker run mplatform/mquery openjdk:8-jdk
Image: openjdk:8-jdk
* Manifest List: Yes
* Supported platforms:
- linux/amd64
- linux/arm/v5
- linux/arm/v7
- linux/arm64/v8
- linux/386
- linux/ppc64le
- linux/s390x
$ docker run mplatform/mquery openjdk:8-jdk-nanoserver
Image: openjdk:8-jdk-nanoserver
* Manifest List: Yes
* Supported platforms:
- windows/amd64:10.0.14393.1770
Multi-Arch Images: hello-world
$ docker run mplatform/mquery hello-world
Image: hello-world
* Manifest List: Yes
* Supported platforms:
- linux/amd64
- linux/arm/v5
- linux/arm/v7
- linux/arm64/v8
- linux/386
- linux/ppc64le
- linux/s390x
- windows/amd64:10.0.14393.1770
- windows/amd64:10.0.16299.19
Play with Docker
Cloud-Service zum Erlernen von Docker
Kostenfreie Docker-Hosts für vier Stunden
Jeder Host nutzt Docker-in-Docker (dind)
https://labs.play-with-docker.com/
Tooling
Anmeldung per SSH (ssh -p 1022 10–0–1–3–48a594c4@host1.labs.play-with-docker.com)
Treiber für docker-machine (https://github.com/play-with-docker/docker-machine-driver-
pwd)
Kudos an die Autoren
Docker Captains Marcos Nils und Jonathan Leibiusky
Ökosystem
Rancher
Grafische Verwaltung diverser Orchestrierer (v1)
Open Source-Konkurrent zu Docker UCP
Verwaltung für Kubernetes (v2)
Storage
Persistenter Storage ist eine Herausforderung
Docker hat Infinit gekauft
Security
Zusätzliche Abschottung
Isolation des Netzwerkverkehrs
Wo steht Docker heute?
Getrieben durch Shareholder Value
Docker EE muss Community-Aktivitäten finanzieren
Standardisierung des Ökosystems
Docker ist eine der treibenden Kräfte
Container sind Mainstream
Relevanz durch Zusammenarbeit
Konkurrenten wachsen zusammen
Docker öffnet sich Kubernetes
Inwiefern öffnet sich Kubernetes auch Docker?!

Weitere ähnliche Inhalte

Was ist angesagt?

Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen B1 Systems GmbH
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsQAware GmbH
 
OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!Tobias Schneck
 
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-UmgebungenContinuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-UmgebungenNicholas Dille
 
Hendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit DockerHendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit Dockergedoplan
 
Alternativen des Betriebs von Weblogic mit Kubernetes/Docker
Alternativen des Betriebs von Weblogic mit Kubernetes/DockerAlternativen des Betriebs von Weblogic mit Kubernetes/Docker
Alternativen des Betriebs von Weblogic mit Kubernetes/DockerOPITZ CONSULTING Deutschland
 
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-PipelinesContinuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-PipelinesTobias Schneck
 
Docker and Raspberry Pi. A dream team?
Docker and Raspberry Pi. A dream team?Docker and Raspberry Pi. A dream team?
Docker and Raspberry Pi. A dream team?Govinda Fichtner
 
Versionskontrolle mit Subversion und Git
Versionskontrolle mit Subversion und GitVersionskontrolle mit Subversion und Git
Versionskontrolle mit Subversion und Gitpaultcochrane
 
Git vs SVN DevCon 2011
Git vs SVN DevCon 2011Git vs SVN DevCon 2011
Git vs SVN DevCon 2011Mario Müller
 
Git vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende EinführungGit vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende EinführungMario Müller
 
Ausrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit DockerAusrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit DockerB1 Systems GmbH
 
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...B1 Systems GmbH
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
 
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!Stefan Imhoff
 

Was ist angesagt? (19)

systemd & Docker
systemd & Dockersystemd & Docker
systemd & Docker
 
Was ist Docker ?
Was ist Docker ?Was ist Docker ?
Was ist Docker ?
 
Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!
 
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-UmgebungenContinuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
 
Hendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit DockerHendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit Docker
 
Alternativen des Betriebs von Weblogic mit Kubernetes/Docker
Alternativen des Betriebs von Weblogic mit Kubernetes/DockerAlternativen des Betriebs von Weblogic mit Kubernetes/Docker
Alternativen des Betriebs von Weblogic mit Kubernetes/Docker
 
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-PipelinesContinuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
 
Einführung in Docker
Einführung in DockerEinführung in Docker
Einführung in Docker
 
Docker and Raspberry Pi. A dream team?
Docker and Raspberry Pi. A dream team?Docker and Raspberry Pi. A dream team?
Docker and Raspberry Pi. A dream team?
 
Versionskontrolle mit Subversion und Git
Versionskontrolle mit Subversion und GitVersionskontrolle mit Subversion und Git
Versionskontrolle mit Subversion und Git
 
Git vs SVN DevCon 2011
Git vs SVN DevCon 2011Git vs SVN DevCon 2011
Git vs SVN DevCon 2011
 
Jenkins Acceleration
Jenkins AccelerationJenkins Acceleration
Jenkins Acceleration
 
Git vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende EinführungGit vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende Einführung
 
Ausrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit DockerAusrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit Docker
 
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
 

Ähnlich wie Was gibt es Neues im Docker-Universum

Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesGregor Biswanger
 
In den sicheren Hafen jax2020
In den sicheren Hafen jax2020In den sicheren Hafen jax2020
In den sicheren Hafen jax2020Stephan Kaps
 
Docker for Windows / Windows Container
Docker for Windows / Windows ContainerDocker for Windows / Windows Container
Docker for Windows / Windows ContainerThomas Wilhelm Wiefel
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerSteven Grzbielok
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsJosef Adersberger
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker ContainerAndreas Koop
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & DominoUlrich Krause
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for BeginnersUlrich Krause
 
Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17remigius-stalder
 
DOAG Webinar Oracle und Docker
DOAG Webinar Oracle und DockerDOAG Webinar Oracle und Docker
DOAG Webinar Oracle und DockerStefan Oehrli
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Gregor Biswanger
 
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...Bernd Zuther
 
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...Marc Müller
 
WTC 2019 – Flutter
WTC 2019 – FlutterWTC 2019 – Flutter
WTC 2019 – Flutterwebconia
 
Docker for Python Development
Docker for Python DevelopmentDocker for Python Development
Docker for Python DevelopmentMartin Christen
 
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Gregor Biswanger
 

Ähnlich wie Was gibt es Neues im Docker-Universum (20)

Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
 
In den sicheren Hafen jax2020
In den sicheren Hafen jax2020In den sicheren Hafen jax2020
In den sicheren Hafen jax2020
 
Was ist Docker?
Was ist Docker?Was ist Docker?
Was ist Docker?
 
Docker for Windows / Windows Container
Docker for Windows / Windows ContainerDocker for Windows / Windows Container
Docker for Windows / Windows Container
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with Docker
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & Domino
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
 
Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17
 
DOAG Webinar Oracle und Docker
DOAG Webinar Oracle und DockerDOAG Webinar Oracle und Docker
DOAG Webinar Oracle und Docker
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
 
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
 
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
 
WTC 2019 – Flutter
WTC 2019 – FlutterWTC 2019 – Flutter
WTC 2019 – Flutter
 
Docker for Python Development
Docker for Python DevelopmentDocker for Python Development
Docker for Python Development
 
Oracle und Docker
Oracle und DockerOracle und Docker
Oracle und Docker
 
Docker Workbench
Docker WorkbenchDocker Workbench
Docker Workbench
 
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
 

Was gibt es Neues im Docker-Universum

  • 1. Was gibt es Neues im Docker-Universum? Nicholas Dille Docker Captain, Microsoft MVP
  • 2. Nicholas Dille Ehemann, Vater, Geek, Aikidoka Microsoft MVP seit 2010 Docker Captain seit 2017 DevOps Engineer @ Haufe-Lexware http://dille.name/blog @NicholasDille
  • 3. Was macht Docker so besonders? Am Anfang waren logische Partitionen (LPARs) Veröffentlicht 1972 von unseren Eltern Dann kamen Linux Containers (LXC) Veröffentlicht 2008 von unseren älteren Geschwistern Schnittstelle zu Control Groups und Namespaces Zuletzt erblickt Docker das Licht der Welt Gegründet 2013 von Solomon Hykes Revolution der Container-Verwaltung durch Automatisierung
  • 4. Was sind Container? #TBT: Container sind Prozessisolation Umsetzung durch den Kernel Ressourcen müssen geteilt werden Container vs. virtuelle Maschinen Andere Ebenen der Virtualisierung Gemeinsame Hardware vs. gemeinsamer Kernel Container sind eine weitere Option Hardware Virtualisierung OS OS Prozess Prozess Prozess Prozess Hardware Operating System Prozess Prozess Prozess Prozess
  • 5. Was Docker bietet Enterprise Edition Community Edition Docker CLI Trusted RegistryUniversal Control Plane Machinedockerd Docker Hub Docker Certified
  • 6. Das Moby Projekt Angekündigt auf der DockerCon (Mai 2017) Veröffentlichung der Komponenten von Docker CE Bestandteile runC / containerd / LinuxKit / SwarmKit Notary / Registry / Compose libnetwork / DataKit / BuildKit / VPNKit / InfraKit / HyperKit Downstream-Projekte Docker CE / EE Balena (Container Engine für IoT) Steuerung durch Technical Steering Committee
  • 7. Was Docker bietet Enterprise Edition Community Edition Moby Docker CLI SwarmKit runC Trusted RegistryUniversal Control Plane Compose Machinedockerd InfraKit HyperKit VPNKit BuildKit DataKitRegistry libnetwork Docker Hub Docker Certified
  • 8. LinuxKit Minimalistisches, unveränderliches Linux Definition in YAML Bauen mit Moby Basiert auf containerd Alles ist ein Container (auch System-Dienste) Images basieren auf Alpine Linux Images sind mit Notary signiert Unterstützung diverser Plattformen DEMO https://github.com/nicholasdille/Sessions/blob/master/2017-11- 15%20Docker%20%40%20ContainerConf%20Mannheim/Demo1_LinuxKit.md Linux kernel 4.9 Minimal init containerd Service Containers On-Boot Containers Shutdown Containers
  • 9. containerd Verwaltung von Containern Basiert auf runC (reine Runtime) Fügt Pull und Push von Images hinzu gRPC-API über UNIX-Socket Kommandozeilenwerkzeug ctr Gehört der CNCF DEMO https://github.com/nicholasdille/Sessions/blob/master/2017-11- 15%20Docker%20%40%20ContainerConf%20Mannheim/Demo2_containerd.md InfraKit containerd SwarmKit Docker API Docker CLI Docker Compose Docker Build
  • 10. Notary Datenintegrität sicherstellen Signieren beliebiger Daten Prüfen von Signatur Client/Server-Architektur Grundlage für Docker Content Trust Gehört der CNCF DEMO https://github.com/nicholasdille/Sessions/blob/master/2017-11- 15%20Docker%20%40%20ContainerConf%20Mannheim/Demo3_Notary.md Server Signer Client Signierte Metadaten Private Schlüssel
  • 11. 12 Projekte Docker im Container-Ökosystem …spendete Spezifikation und runC (Juni 2015) …spendete containerd (März 2017) und Notary (Oktober 2017) …initiierte (April 2017)
  • 12. Docker Kubernetes Angekündigt auf der DockerCon EU (Oktober 2017) Integration in Docker Universal Control Plane (UCP) Verwaltung von Stacks auf SwarmKit und Kubernetes Übersetzung von docker-compose.yml Bundled Docker CLI and Kubernetes CLI Installation auf neuen Nodes via Docker UCP Enthalten in Docker für Mac Enthalten in Docker für Windows Docker für Mac/Windows installiert Kubernetes (single node)
  • 13. Kubernetes Enterprise Edition Community Edition Moby Was Docker bietet Docker CLI SwarmKit runC Trusted RegistryUniversal Control Plane Compose Machinedockerd InfraKit HyperKit VPNKit BuildKit DataKitRegistry libnetwork Docker Hub Docker Certified
  • 14. Linux Container on Windows (LCOW) Linux-Container unter Windows Voraussetzung ist Windows (Server) 1709 Benötigt Containers und Hyper-V Linux-Container laufen unter Hyper-V Jeder Linux-Container erhält eine dedizierte VM Universelle Docker CLI Es zeigt Container beider Plattformen an DEMO https://github.com/nicholasdille/Sessions/blob/master/2017-11- 15%20Docker%20%40%20ContainerConf%20Mannheim/Demo4_LCOW.md Windows (Server) 1709 Containers und Hyper-V nativ nativ VM LinuxKit Linux Container VM LinuxKit Linux Container
  • 15. Multi-Stage Builds Neue Syntax für Dockerfile Bauen in mehreren Schritten Mehrere FROM-Abschnitte Vorteile Trennen von Build Env und Runtime Kleinere Images Weniger Pakete installiert Pipelines statt Multi-Stage Builds $ cat HelloWorld.java class HelloWorld { public static void main(String[] a) { System.out.println("Hello world!"); } } $ cat Dockerfile FROM openjdk:8-jdk as builder COPY HelloWorld.java . RUN javac HelloWorld.java FROM openjdk:8-jre COPY --from=builder /HelloWorld.class . CMD [ "java", "HelloWorld" ]
  • 16. Multi-Arch Images Images funktionieren nur auf einer Plattform Container laufen aber auf vielen Architekturen und Betriebssystemen Erstellen „virtueller“ Images Spezielles Manifest verweist auf äquivalente Images unterschiedlicher Plattformen https://github.com/estesp/manifest-tool (by Docker Captain Phil Estes) Offizielle Images sind bereits umgestellt In der Tiefe von Stefan Scherer (Docker Captain) https://youtu.be/kvJkKhkAnCM web web-linux-amd64 web-win-amd64 Manifest
  • 17. Multi-Arch Images: openjdk $ docker run mplatform/mquery openjdk:8-jdk Image: openjdk:8-jdk * Manifest List: Yes * Supported platforms: - linux/amd64 - linux/arm/v5 - linux/arm/v7 - linux/arm64/v8 - linux/386 - linux/ppc64le - linux/s390x $ docker run mplatform/mquery openjdk:8-jdk-nanoserver Image: openjdk:8-jdk-nanoserver * Manifest List: Yes * Supported platforms: - windows/amd64:10.0.14393.1770
  • 18. Multi-Arch Images: hello-world $ docker run mplatform/mquery hello-world Image: hello-world * Manifest List: Yes * Supported platforms: - linux/amd64 - linux/arm/v5 - linux/arm/v7 - linux/arm64/v8 - linux/386 - linux/ppc64le - linux/s390x - windows/amd64:10.0.14393.1770 - windows/amd64:10.0.16299.19
  • 19. Play with Docker Cloud-Service zum Erlernen von Docker Kostenfreie Docker-Hosts für vier Stunden Jeder Host nutzt Docker-in-Docker (dind) https://labs.play-with-docker.com/ Tooling Anmeldung per SSH (ssh -p 1022 10–0–1–3–48a594c4@host1.labs.play-with-docker.com) Treiber für docker-machine (https://github.com/play-with-docker/docker-machine-driver- pwd) Kudos an die Autoren Docker Captains Marcos Nils und Jonathan Leibiusky
  • 20. Ökosystem Rancher Grafische Verwaltung diverser Orchestrierer (v1) Open Source-Konkurrent zu Docker UCP Verwaltung für Kubernetes (v2) Storage Persistenter Storage ist eine Herausforderung Docker hat Infinit gekauft Security Zusätzliche Abschottung Isolation des Netzwerkverkehrs
  • 21. Wo steht Docker heute? Getrieben durch Shareholder Value Docker EE muss Community-Aktivitäten finanzieren Standardisierung des Ökosystems Docker ist eine der treibenden Kräfte Container sind Mainstream Relevanz durch Zusammenarbeit Konkurrenten wachsen zusammen Docker öffnet sich Kubernetes Inwiefern öffnet sich Kubernetes auch Docker?!