So funktioniert Docker · Mindmaps

So funktioniert Docker. Eine bearbeitbare Mindmap mit farbigen Zweigen, Unterthemen und Verbindungen. Geschwungene Linien zeigen Beziehungen; Pfeile stehen nur dort, wo die Richtung wichtig ist.

Docker verpackt eine Anwendung und alles, was sie braucht, in ein Image und führt sie dann als Container aus, als isolierten Prozess, der sich auf jeder Maschine mit einer Docker Engine identisch verhält.

So funktioniert Docker · Mindmaps

Die interaktive MindMap-Zeichenfläche zu dieser Erklärung — jede Bahn, jede Zeile und jeder Pfeil oben gehört zu einem echten QueryChart-Diagramm, das Sie öffnen und bearbeiten können.

So lesen Sie diese Mindmap

  • Beginnen Sie beim Thema in der Mitte und folgen Sie einem farbigen Zweig zu den zugehörigen Ideen.
  • Geschwungene Linien zeigen Beziehungen; Pfeile stehen nur dort, wo die Richtung wichtig ist.

Describe & build

Dieser Zweig verbindet “The Dockerfile is a recipe: base image, dependencies, files to copy, the command to run. It makes the build reproducible — the same file produces the same image everywhere.”, “docker build packages the app and its dependencies”.

Image

Dieser Zweig verbindet “An image is the packaging artifact: everything the app needs to run, frozen in read-only layers. It never changes once built.”, “Image is pushed to a registry, or pulled from one”.

Container

Dieser Zweig verbindet “docker run starts a container from the image”, “Namespaces isolate what the process can see (its own file system, network, processes); cgroups limit what it can use (CPU, memory). This is how many containers run on one host without fighting.”.

Host kernel

Dieser Zweig verbindet “Container shares the host kernel but has its own file system”.

Portable app

Dieser Zweig verbindet “Because the container carries its own runtime, libraries and configuration, “works on my machine” stops being a real failure mode.”.

Verbindungen zwischen den Zweigen

Ein Image ist eine schreibgeschützte Momentaufnahme; ein Container ist eine laufende Instanz davon.

Container teilen den Kernel des Hosts und täuschen Isolation mit Namespaces vor: deshalb starten sie in Sekunden, wo virtuelle Maschinen Minuten brauchen.

cgroups begrenzen, was ein Container verbrauchen kann, damit ein lauter Nachbar den Host nicht aushungert.

Die Unveränderlichkeit des Images ist es, die „läuft überall gleich“ wahr macht.

Docker liefert die Verpackung und die Laufzeitumgebung; Orchestrierer wie Kubernetes verwalten viele Container über mehrere Hosts hinweg.

Wichtige Zusammenhänge und Erkenntnisse

  • Ein Image ist eine schreibgeschützte Momentaufnahme; ein Container ist eine laufende Instanz davon.
  • Container teilen den Kernel des Hosts und täuschen Isolation mit Namespaces vor: deshalb starten sie in Sekunden, wo virtuelle Maschinen Minuten brauchen.
  • cgroups begrenzen, was ein Container verbrauchen kann, damit ein lauter Nachbar den Host nicht aushungert.
  • Die Unveränderlichkeit des Images ist es, die „läuft überall gleich“ wahr macht.
  • Docker liefert die Verpackung und die Laufzeitumgebung; Orchestrierer wie Kubernetes verwalten viele Container über mehrere Hosts hinweg.

Wann Sie diese Darstellung nutzen

  • Einem Entwickler erklären, warum Docker funktioniert und worin sich ein Container von einer virtuellen Maschine unterscheidet.
  • Ein Team an das Modell aus Bauen, Ausliefern und Ausführen heranführen, bevor es sein erstes Dockerfile schreibt.
  • Ein Gespräch über auseinanderdriftende Umgebungen fundieren: warum „works on my machine“ nicht mehr greift.

So funktioniert es

  1. Mittleres Thema anpassen

    Benennen Sie das Thema für Ihr Projekt oder Ihren Unterricht um.

  2. Zweige ausbauen

    Bearbeiten Sie Ideen und ergänzen Sie Beispiele oder Notizen.

  3. Ideen verbinden

    Zeichnen Sie Verbindungen zwischen Zweigen; Pfeile zeigen eine wichtige Richtung an.

Häufig gestellte Fragen

Worin unterscheiden sich ein Container und eine virtuelle Maschine?

Eine virtuelle Maschine virtualisiert die Hardware: Sie bringt ein vollständiges Betriebssystem mit, und ein Hypervisor vermittelt alles, was sie schwer und langsam im Start macht. Ein Container virtualisiert das Betriebssystem: Er teilt den Kernel des Hosts und nutzt Namespaces für die Isolation und cgroups für Ressourcengrenzen. Deshalb starten Container in Sekunden und sind viel leichter: der Preis dafür ist, dass alle Container auf einem Host denselben Kernel teilen.

Was ist ein Image, und was ein Container?

Ein Image ist das statische Artefakt: eine schreibgeschützte Momentaufnahme der Anwendung und ihrer Abhängigkeiten, gebaut aus dem Dockerfile. Ein Container ist dieses Image in Bewegung: ein laufender Prozess mit einer beschreibbaren Schicht darüber. Sie bauen ein Image einmal und können Tausende Container daraus starten, jeden isoliert von den anderen.

Wie isoliert Docker Container?

Mit zwei Funktionen des Linux-Kernels. Namespaces geben jedem Container eine eigene Sicht auf das System (ein eigenes Dateisystem, einen eigenen Netzwerk-Stack, eine eigene Prozesstabelle und eigene Benutzer-IDs), sodass er wie eine eigene Maschine wirkt. cgroups (control groups) begrenzen und messen Ressourcen: Sie deckeln, wie viel CPU, Arbeitsspeicher und I/O ein Container verbrauchen kann, damit ein Container seine Nachbarn nicht mitreißt.

Warum macht Docker Anwendungen portabel?

Weil das Image die Anwendung zusammen mit ihrer Laufzeitumgebung, ihren Bibliotheken und ihrer Konfiguration bündelt: alles außer dem Kernel. Überall, wo eine Docker Engine läuft, läuft das Image gleich, und so schrumpft der Abstand zwischen dem Laptop eines Entwicklers, einem CI-Runner und einem Server im Produktivbetrieb auf die Konfiguration, die absichtlich außerhalb des Images gehalten wird.

Diese Mindmap in QueryChart bearbeiten

Öffnen Sie die Mindmap auf einer bearbeitbaren Leinwand. Verschieben Sie Ideen und ergänzen Sie Zweige und Verbindungen.

Diese Mindmap in QueryChart bearbeiten

Mehr in Mindmaps