Container / Docker für Einsteiger*innen
Dipl. Ing. (FH) Eugen Richter
Themen
Container vs. VM vs. Bare Metall
Container / Image
Orchestrierung
Container Hubs / Registries
Docker Geschichte
Weiterführende Themen
Workshop
Container vs. VM vs. Bare Metall
Bare Metall
Pro
Alle Ressourcen der Hardware nutzbar
Wiederverwendung von Abhängigkeiten
Schnelle App Startzeiten
Kontra
Auslastung der Hardware mit einer Applikation
HW-Größe basierend am max. Auslastung
App Abhängigkeiten
Skalierung (neu HW + Installation)
Virtualisierung
Pro
Abhängigkeiten können in der VM isoliert werden
Unterschiedliche Betriebssysteme pro VM möglich
Vorlagen / Images möglich (für Skalierung)
Kontra
Höher Ressourcenverbrauch pro VM (eigenständiges Betriebssystem)
Lange Startzeiten (Hochfahren der VM)
Containerisierung
Pro
Sehr schnelle Startzeit
Kein Verbrauch “unnötiger” Ressourcen
Isolierung der Abhängigkeiten pro Container
Skalierung
Kontra
Nur Betriebssystem des Host
Nicht alle “Features” der HW können direkt genutzt werden
Container / Images
Image
Bauplan für einen Container
Beschreibt die Software und ihre Abhängigkeiten
Ist ein Schichten-Dateisystem
Jede Schicht entspricht einer Änderung an der vorherigen Schicht
Container
Instanz, die aus einem Image erstellt wurde
Letzter Layer im Dateisystem ist beschreibbar
“Die” laufende Applikation
Kann beim Start parametrisiert werden
Orchestrierung
Problem
Abhängigkeiten zwischen Containern
Startreihenfolge
Lösung
Orchestrierung
Docker Compose
Kubernetes
Hubs / Registries
Speicherorte für veröffentlichte Images mit Versionen und meistens einer Beschreibung, wie das Image zu nutzen ist.
Bekannteste Anbieter von Container Repositories
Docker Hub - hub.docker.com
Quay.io - quay.io
GitHub Container Registry
Azure Container Registry
Google Container Registry
Amazon Elastic Container Registry
Docker - Geschichte
2008: cgroup kommen in Linux an
2008: Gründung als dotCloud
2013: Ankündigung von Docker (mit RedHat)
2014: Partnerschaft mit Microsoft
2015: OCI Projekt
2015: Kubernetes 1.0
2018: GKS, AKS, EKS (Managed Kubernetes)
2021: Änderung der Linzenzierung
Weiterführende Themen
Kubernetes (Orchestrierung)
OCI - Open Container Initiative
CNCF - Cloud Native Computing Foundation
Alpine Linux
UNRAID (NAS auf Container Basis)
WebAssembly
Workshop
Installation
Starten von vorhandenen Images
Nutzung als Entwickler (Beispiel Applikation)
Docker Compose (Orchestrierung)
Nutzung als Entwickler (Beispiel Applikation)
Eigenen Code als Image verpacken
Multi Step Builds
Veröffentlichung der Images
Dev / Test Container