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

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 vs. VM vs. Bare Metall

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