Docker Workshop – Übersicht
Überblick
Dieser Workshop führt von den Grundlagen bis zu fortgeschrittenem Betrieb und Security-Härtung. Der Aufbau orientiert sich am Kubernetes-Workshop: Referenzdokumente, vier Workshop-Level, Übungen, Assessments, Lösungen, offizielle Quellen und 31 praktische Beispiele.
Der Fokus liegt auf realer Docker-Praxis:
- Docker Engine, CLI, Daemon und API verstehen
- Images, Layer, Tags, Digests und Registries fachlich einordnen
- Dockerfiles reproduzierbar und wartbar schreiben
- Container-Lebenszyklus, Netzwerke, Ports, Volumes und Logs beherrschen
- Compose-Projekte strukturiert prüfen und betreiben
- Docker im CI/CD-, Registry- und Plattformkontext einsetzen
- Rootless Mode, Socket-Schutz, User Namespaces, Capabilities, Seccomp und AppArmor bewerten
- Fehler systematisch analysieren und Labs sauber zurückbauen
Quickstart
# Workshop content is provided through the Orthevs Academy.
chmod +x scripts/provision_docker.sh
./scripts/provision_docker.sh --dry-run
Wenn du auf einem vorbereiteten Linux-Lab arbeitest, kannst du die Umgebung prüfen:
docker version
docker context ls
docker info
docker run --rm alpine:3.20 echo docker-workshop-ok
Lernpfad
| Level | Schwerpunkt | Workshop | Übungen | Assessment |
|---|---|---|---|---|
| 01 | Grundlagen | Grundlagen Workshop | Grundlagen Übungen | Grundlagen Assessment |
| 02 | Intermediate | Intermediate Workshop | Intermediate Übungen | Intermediate Assessment |
| 03 | Professional | Professional Workshop | Professional Übungen | Professional Assessment |
| 04 | Advanced Security | Advanced Security Workshop | Advanced Security Übungen | Advanced Security Assessment |
Dokumentation
Beispiele
Die Beispiele liegen unter examples/README.md. Jedes Beispiel enthält eine Hauptbeschreibung, eine deutsche Detailbeschreibung, eine englische Detailbeschreibung, validierbare Artefakte und ein run.sh, das die lokalen Dateien prüft. Die Beispiele bauen bewusst nicht ungefragt Images und starten keine langfristigen Container.
Workshop-Aufbau
.
├── assessments/
├── docs/
├── examples/
├── exercises/
├── media/
│ └── pics/
├── scripts/
├── workshops/
├── LICENSE.md
└── README-DE.md
Arbeitsweise
- Lies zuerst das passende Dokument unter
docs/. - Arbeite das Workshop-Level unter
workshops/durch. - Nutze die Beispiele als kontrollierte Lab-Artefakte.
- Bearbeite die Übungen und dokumentiere Befehle, Beobachtungen und Rückbau.
- Prüfe dich mit den Assessments und Lösungen.
Wichtige Sicherheitsregel
Der Docker-Daemon ist mächtig. Wer auf den Docker-Socket schreiben darf, kann in vielen Setups effektiv Host-Kontrolle erlangen. Verwende keine echten Secrets in diesem Workshop, teile keine produktiven Registry-Tokens und mounte keine sensiblen Host-Pfade in Lab-Container.
Offizielle Quellen und Abgrenzung
Die Inhalte orientieren sich an öffentlich dokumentierten Docker-Quellen. Wo der Workshop über Docker Engine hinaus externe Werkzeuge erwähnt, wird das als ergänzende Praxis eingeordnet und nicht als Docker-Engine-Funktion ausgegeben.
- Docker Engine: https://docs.docker.com/engine/
- Dockerfile Reference: https://docs.docker.com/reference/dockerfile/
- Compose File Reference: https://docs.docker.com/reference/compose-file/
- Compose Specification: https://github.com/compose-spec/compose-spec/blob/master/spec.md
- Docker Engine Security: https://docs.docker.com/engine/security/
- Docker Rootless Mode: https://docs.docker.com/engine/security/rootless/
- Protect the Docker Daemon Socket: https://docs.docker.com/engine/security/protect-access/
- Docker Build Best Practices: https://docs.docker.com/build/building/best-practices/
- Docker Training: https://www.docker.com/trainings/
Lizenz
Siehe LICENSE.md.
Zusätzliche Review-Drills
Nutze diese Drills, wenn die Hauptaufgabe abgeschlossen ist und zusätzliche betriebliche Begründung geübt werden soll. Sie sind bewusst nachweisorientiert und benötigen keine erfundenen Plattformannahmen.
Drill 01: Image-Herkunft
- Benenne, welches Docker-Objekt oder welche Host-Grenze durch
Image-Herkunftbetroffen ist. - Nenne einen Befehl, der einen Nachweis liefert, und ein relevantes Feld in der Ausgabe.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Rückbaupfad für einen gemeinsam genutzten Trainingshost.
Drill 02: Build Context
- Benenne, welches Docker-Objekt oder welche Host-Grenze durch
Build Contextbetroffen ist. - Nenne einen Befehl, der einen Nachweis liefert, und ein relevantes Feld in der Ausgabe.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Rückbaupfad für einen gemeinsam genutzten Trainingshost.
Drill 03: Layer-Reihenfolge
- Benenne, welches Docker-Objekt oder welche Host-Grenze durch
Layer-Reihenfolgebetroffen ist. - Nenne einen Befehl, der einen Nachweis liefert, und ein relevantes Feld in der Ausgabe.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Rückbaupfad für einen gemeinsam genutzten Trainingshost.
Drill 04: Container-User
- Benenne, welches Docker-Objekt oder welche Host-Grenze durch
Container-Userbetroffen ist. - Nenne einen Befehl, der einen Nachweis liefert, und ein relevantes Feld in der Ausgabe.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Rückbaupfad für einen gemeinsam genutzten Trainingshost.
Drill 05: Mounts und Volumes
- Benenne, welches Docker-Objekt oder welche Host-Grenze durch
Mounts und Volumesbetroffen ist. - Nenne einen Befehl, der einen Nachweis liefert, und ein relevantes Feld in der Ausgabe.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Rückbaupfad für einen gemeinsam genutzten Trainingshost.
Drill 06: Bridge-Netzwerk
- Benenne, welches Docker-Objekt oder welche Host-Grenze durch
Bridge-Netzwerkbetroffen ist. - Nenne einen Befehl, der einen Nachweis liefert, und ein relevantes Feld in der Ausgabe.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Rückbaupfad für einen gemeinsam genutzten Trainingshost.
Drill 07: Port-Veröffentlichung
- Benenne, welches Docker-Objekt oder welche Host-Grenze durch
Port-Veröffentlichungbetroffen ist. - Nenne einen Befehl, der einen Nachweis liefert, und ein relevantes Feld in der Ausgabe.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Rückbaupfad für einen gemeinsam genutzten Trainingshost.
Drill 08: Compose-Konfiguration
- Benenne, welches Docker-Objekt oder welche Host-Grenze durch
Compose-Konfigurationbetroffen ist. - Nenne einen Befehl, der einen Nachweis liefert, und ein relevantes Feld in der Ausgabe.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Rückbaupfad für einen gemeinsam genutzten Trainingshost.
Drill 09: Daemon-Socket
- Benenne, welches Docker-Objekt oder welche Host-Grenze durch
Daemon-Socketbetroffen ist. - Nenne einen Befehl, der einen Nachweis liefert, und ein relevantes Feld in der Ausgabe.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Rückbaupfad für einen gemeinsam genutzten Trainingshost.
Drill 10: Registry-Zugriff
- Benenne, welches Docker-Objekt oder welche Host-Grenze durch
Registry-Zugriffbetroffen ist. - Nenne einen Befehl, der einen Nachweis liefert, und ein relevantes Feld in der Ausgabe.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Rückbaupfad für einen gemeinsam genutzten Trainingshost.
Drill 11: Rootless Mode
- Benenne, welches Docker-Objekt oder welche Host-Grenze durch
Rootless Modebetroffen ist. - Nenne einen Befehl, der einen Nachweis liefert, und ein relevantes Feld in der Ausgabe.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Rückbaupfad für einen gemeinsam genutzten Trainingshost.
Drill 12: Seccomp und Capabilities
- Benenne, welches Docker-Objekt oder welche Host-Grenze durch
Seccomp und Capabilitiesbetroffen ist. - Nenne einen Befehl, der einen Nachweis liefert, und ein relevantes Feld in der Ausgabe.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Rückbaupfad für einen gemeinsam genutzten Trainingshost.
Drill 13: Logs und Events
- Benenne, welches Docker-Objekt oder welche Host-Grenze durch
Logs und Eventsbetroffen ist. - Nenne einen Befehl, der einen Nachweis liefert, und ein relevantes Feld in der Ausgabe.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Rückbaupfad für einen gemeinsam genutzten Trainingshost.
Drill 14: Cleanup und Rückbau
- Benenne, welches Docker-Objekt oder welche Host-Grenze durch
Cleanup und Rückbaubetroffen ist. - Nenne einen Befehl, der einen Nachweis liefert, und ein relevantes Feld in der Ausgabe.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Rückbaupfad für einen gemeinsam genutzten Trainingshost.
Drill 15: Image-Herkunft
- Benenne, welches Docker-Objekt oder welche Host-Grenze durch
Image-Herkunftbetroffen ist. - Nenne einen Befehl, der einen Nachweis liefert, und ein relevantes Feld in der Ausgabe.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Rückbaupfad für einen gemeinsam genutzten Trainingshost.
Drill 16: Build Context
- Benenne, welches Docker-Objekt oder welche Host-Grenze durch
Build Contextbetroffen ist. - Nenne einen Befehl, der einen Nachweis liefert, und ein relevantes Feld in der Ausgabe.
- Erkläre, was aus diesem Nachweis folgt und was daraus nicht folgt.
- Beschreibe den sichersten Rückbaupfad für einen gemeinsam genutzten Trainingshost.