- 1 Section
- 10 Lessons
- unbegrenzt
- Docker & Container10
- 1.1Container vs. VM
- 1.2Docker-Architektur: Client, Daemon, Registry
- 1.3Images und Container: pull, run, stop, rm
- 1.4Dockerfile – eigene Images bauen
- 1.5Volumes: persistente Daten
- 1.6Netzwerke in Docker: bridge, host, overlay
- 1.7Docker Compose: Multi-Container-Anwendungen
- 1.8Docker in der CI/CD-Pipeline
- 1.9Sicherheit in Docker-Umgebungen
- 1.10Aufgaben Docker
Aufgaben Docker
Diese Lektion ist die Abschlussübung des Kurses: zehn IHK-typische Aufgaben quer durch alle Themen. Du findest Container-vs-VM-Zuordnungen, Befehls-Erkennung, Dockerfile-Verständnis, Volumes, Netzwerke, Sicherheit und mehr. Nach jeder Antwort siehst du die ausführliche Lösung mit Verweis auf die zugehörige Lektion. Ziel: vor der Prüfung wissen, wo du sicher bist und wo nicht.
Tipp zur Bearbeitung: Versuche jede Aufgabe zuerst ohne Hilfe. Falsche Antworten zeigen dir, wo du noch nachschauen solltest. Die Auswertung am Ende sagt dir, wie prüfungsreif du bist.
Das ist der grundlegende Unterschied. VMs virtualisieren auf Hardware-Ebene mit komplettem Gastbetriebssystem; Container virtualisieren auf OS-Ebene und nutzen den Host-Kernel über Namespaces und Cgroups. Konsequenz: Container sind viel leichter (MBs statt GBs), starten in Sekunden statt Minuten, aber haben schwächere Isolation. Mehr in Container vs. VM.
Der Daemon ist das Server-Komponente von Docker. Der CLI-Client (
docker) sendet Befehle per REST-API an den Daemon, der die eigentliche Arbeit macht (Images verwalten, Container-Lifecycle, Netzwerke, Volumes) und dafür intern die Container-Runtime (containerd / runc) aufruft. Die Registry ist nur Image-Speicher. Mehr in Docker-Architektur.
docker start web -p 8080:80 nginxdocker run -d -p 8080:80 --name web nginxdocker create -t web -p 80:8080 nginxdocker exec -d --name web -p 8080 nginxdocker run -d -p 8080:80 --name web nginx.Die Flags zur Erinnerung:
-d = detached (Hintergrund), -p HOST:CONTAINER = Port-Mapping (also Host-Port 8080 → Container-Port 80), --name = sprechender Name. docker start ist nur für bereits existierende Container, docker create legt nur an ohne zu starten, docker exec führt einen Befehl in einem laufenden Container aus. Mehr in Docker Images & Container.
Das Image ist der schreibgeschützte Bauplan; der Container ist die laufende Instanz davon. Aus
nginx:1.25 kann man beliebig viele Webserver-Container starten, jeder mit eigener Konfiguration und eigenen Daten – sie teilen sich aber die schreibgeschützten Image-Layer (effizient im Storage). Mehr in Docker Images & Container.
COPY- und RUN-Anweisungen für eine Node.js-App stehen, damit der Layer-Cache optimal genutzt wird?COPY . ., dann RUN npm installCOPY package*.json, dann RUN npm install, dann COPY . .RUN npm install, dann COPY . .package*.json kopieren, dann npm install, dann den Rest des Codes.Hintergrund: Der lange
npm install-Schritt wird nur dann neu ausgeführt, wenn sich die Manifest-Dateien ändern – nicht bei jeder Code-Änderung. So sparst du bei normalen Code-Edits Minuten pro Build (Layer-Cache nutzt vorherigen Stand). Die goldene Regel: was sich selten ändert (Dependencies) kommt nach oben, was sich oft ändert (Quellcode) kommt nach unten. Mehr in Dockerfile schreiben.
docker rm des Containers erhalten.Genau dafür sind sie da: Persistenz über den Container-Lebenszyklus hinaus. Eine Datenbank ohne Volume verliert beim
docker rm alle Daten – mit Volume bleiben sie. Volumes können auch von mehreren Containern gleichzeitig genutzt werden (z. B. Sidecar-Pattern, gemeinsame Daten zwischen Web und Worker). Mehr in Docker Volumes.
docker run ohne --network-Option ausführt?Konkret die Default-Bridge namens
bridge (entspricht dem docker0-Interface). Jeder Container bekommt eine private IP, kann andere Container per IP erreichen (aber nicht per Namen – DNS funktioniert nur in Custom Bridges) und nach außen über NAT auf der Host-Schnittstelle. host teilt den Host-Namespace, overlay ist für Multi-Host-Cluster, none ist komplette Netzwerk-Isolation. Mehr in Docker-Netzwerke.
docker compose up standardmäßig gelesen, um den Stack zu starten?Compose liest standardmäßig diese YAML-Datei im aktuellen Verzeichnis. Darin werden Services, Networks und Volumes deklariert. Mit
-f kann man auch andere Pfade angeben (z. B. docker compose -f docker-compose.prod.yml up). Wichtig: Dockerfile ist das Image-Bau-Rezept, nicht der Stack-Plan. Mehr in Docker Compose.
:latest-Tags für aktuelle ImagesUSER 1000 im Dockerfile)--privileged-Flags für besseren Hardware-ZugriffDefault ist
uid=0 (root) – wenn ein Angreifer aus dem Container ausbricht, hat er Root-Rechte auf dem Host. Mit USER 1000 im Dockerfile läuft der Prozess als unprivilegierter User. :latest ist eine Sicherheits-Schwachstelle (unkontrollierte Updates), Docker-Socket mounten = Root auf Host, --privileged ist das Gegenteil von sicher. Mehr in Docker-Sicherheit.
myapp:latestmyapp:mainmyapp:sha-a3f8b2c (Git-SHA als Tag)myapp:currentmyapp:sha-a3f8b2c).Der Git-SHA ist unveränderlich und eindeutig pro Commit – ein Deploy auf diesen Tag ist exakt reproduzierbar.
:latest, :main und :current sind bewegliche Tags: was heute auf Version 1.2 zeigt, kann morgen schon auf 1.3 zeigen – Rollbacks werden unzuverlässig. In modernen Pipelines bekommt jedes Image mehrere Tags (SHA + Semver + Branch), aber für die produktive Deploy-Operation nutzt man den SHA. Mehr in Docker in CI/CD.
🎓 Auswertung
Schau dir die Lösungen jeder Aufgabe an – dort siehst du, in welcher Lektion das Thema vertieft behandelt wird.
Zum Abschluss: Was du nach diesem Kurs können solltest
Dieser Kurs hat dich durch die wesentlichen Docker- und Container-Themen geführt. Du solltest jetzt sicher sein bei:
- Den Unterschieden zwischen Containern und VMs – Schichten, Boot-Zeit, Ressourcen, Isolation
- Der Docker-Architektur mit Client, Daemon, Registry und Runtime
- Dem Umgang mit Images und Containern, Lifecycle und Befehlen
- Dockerfiles schreiben mit Layer-Cache-Optimierung und Multi-Stage-Builds
- Volumes für persistente Daten (Named Volumes, Bind Mounts, tmpfs)
- Netzwerken (bridge/host/overlay), DNS, Port-Mapping, Segmentierung
- Docker Compose für Multi-Container-Stacks mit deklarativer YAML
- Docker in CI/CD-Pipelines – Build, Test, Scan, Tag, Push, Deploy
- Docker-Sicherheit – Hardening, Capabilities, Secrets, Supply Chain
Bei mindestens 8 / 10 Punkten oben bist du auf einem sehr guten Stand. Für die Prüfung selbst lohnt es sich, die Querverbindungen zu anderen Kursen zu vertiefen – Virtualisierung als Grundlage, Cloud Computing für Container-Plattformen, CI/CD für Automation, IT-Sicherheit für die richtige Härtung.
Verwandte Lektionen: Container vs. VM · Docker-Architektur · Dockerfile · und mehrAlle Lektionen dieses KursesImages & ContainerDocker VolumesDocker-NetzwerkeDocker ComposeDocker in CI/CDDocker-SicherheitWas ist Virtualisierung?Cloud-GrundbegriffeCI/CD-Pipeline-Aufbau
