🐳 Visuelle Erklärung

Docker – wie es innen funktioniert

Vom Befehl docker run bis zum laufenden Prozess: Client, Daemon, containerd und runc, Images aus Schichten, Isolation durch Namespaces und cgroups, Netze, Volumes – und Docker Compose. Alles interaktiv, Schritt für Schritt.

🏗️Aufbau: wer macht was?

Docker besteht aus mehreren Programmen, die sich die Arbeit teilen. Die CLI redet nur mit dem Daemon, der Daemon delegiert an containerd, und erst runc erzeugt den isolierten Prozess.
Linux-Host⌨️ docker (CLI)Client☁️ Registrydocker.io · ghcr.io …🐳 dockerdDaemon · REST-API🧱 Image-SpeicherLayer · Snapshots📋 containerdContainer-Verwaltung🌐 Netzdocker0 · veth · NAT🪝 shimcontainerd-shim-runc-v2⚙️ runcOCI-Runtime📦 Container (nginx)Namespaces + cgroup + rootfs

Auf einen Baustein klicken, um ihn zu erklären.

🐳

dockerd

dockerd ist der Daemon: Er verwaltet Images, Container, Netze und Volumes, bietet die REST-API und kümmert sich um Build (BuildKit), Pull/Push, Port-Veröffentlichung und Logs. Die eigentliche Container-Ausführung gibt er an containerd weiter.

  • ▸Konfiguration: /etc/docker/daemon.json
  • ▸Netze über die Bibliothek libnetwork
  • ▸Logs der Container über Log-Treiber (json-file, journald …)

🆚Container oder virtuelle Maschine?

🖥️ Virtuelle Maschine

┌─────────┐┌─────────┐
│  App A  ││  App B  │
├─────────┤├─────────┤
│ Gast-OS ││ Gast-OS │  ← je ein eigener Kernel
└─────────┘└─────────┘
┌────────────────────┐
│     Hypervisor     │
├────────────────────┤
│Host-Betriebssystem │
└────────────────────┘

Starke Trennung durch Hardware-Virtualisierung, aber Gigabytes pro Gast und Startzeiten im Sekundenbereich.

📦 Container

┌─────────┐┌─────────┐
│  App A  ││  App B  │
│ + Libs  ││ + Libs  │  ← nur Dateien + Namespaces
└─────────┘└─────────┘
┌────────────────────┐
│ Docker / containerd│
├────────────────────┤
│ Host-Kernel (Linux)│  ← von allen geteilt
└────────────────────┘

Normale Prozesse mit eingeschränkter Sicht: Megabytes statt Gigabytes, Start in Millisekunden – aber ein gemeinsamer Kernel.

🧭Kapitel