▶️docker run -d -p 8080:80 nginx

Ein einziger Befehl – und dahinter arbeiten CLI, Daemon, Registry, Image-Speicher, Netz, containerd, Shim und runc zusammen. Gehe Schritt für Schritt vor und zurück und beobachte Diagramm, Terminal und Zustand.

Schritt 1 / 17 · Tasten ← →
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
ClientSchritt 1

Die CLI zerlegt den Befehl

docker ist nur ein Client. Er liest die Optionen: -d (detached: nicht an die Ausgabe hängen), -p 8080:80 (Host-Port 8080 → Container-Port 80) und das Image nginx. Daraus wird ein JSON-Auftrag an die Docker-Engine-API.

Ausschnitt des Auftrags (Engine-API)
{
  "Image": "nginx",
  "HostConfig": {
    "PortBindings": { "80/tcp": [ { "HostIp": "", "HostPort": "8080" } ] }
  }
}
Terminal
$ docker run -d -p 8080:80 nginx

🔎 Zustand

Image
fehlt
Schichten
0/7
Container
IP
veth
Namespaces
cgroup
PID 1

Hinweis: Layer- und Container-IDs sind hier aus festen Texten berechnete Beispiele. Anzahl der Schichten, Digests und API-Version hängen von der nginx- bzw. Docker-Version ab.