Docker 101 - Ein Entwicklerguide

“It works on my machine”
~ Entwickler, alle, irgendwann
Warum noch ein Docker-How-To?
Docker zu lernen kann frustrierend sein. Nicht weil die Technologie kompliziert ist, sondern weil viele Lernressourcen entweder zu oberflächlich sind oder wichtige Konzepte auslassen.
Ich wollte einen Guide schaffen, der Docker systematisch erklärt und dabei von Anfang an Best Practices vermittelt. Einen Guide, der nicht nur zeigt wie Docker funktioniert, sondern auch warum bestimmte Ansätze besser sind als andere.
Enter: docker-demo
Vor über 4 Jahren habe ich angefangen, diesen Guide zu entwickeln – eine Anleitung, die Docker strukturiert und praxisnah erklärt.
Ursprünglich im Rahmen einer Lehrveranstaltung entstanden die ich halte, entwickle ich den Guide stetig weiter und spiegle die Vorlesungsinhalte in dem öffentlichen GitHub Repository, um sie öffentlich zugänglich zu machen. Der Guide richtet sich speziell an Entwicklerinnen (nicht unbedingt Admins) und zeigt, wie man Docker als Teil des Development-Workflows nutzt. Von den ersten Schritten bis hin zu professionellen Multi-Step-Build-Multi-Container-Setup-Deployments mit Traefik und Security Best Practices.
Was dich erwartet
- Docker Internals: Namespaces, Cgroups und warum Container nicht einfach “leichte VMs” sind
- Von simplen Dockerfiles zu Multi-Stage Builds: Effiziente und sichere Images erstellen
- Docker Compose: Multi-Container-Anwendungen orchestrieren
- Development Workflow: Hot-Reloading und Watch-Modi für produktive Entwicklung
- Traefik: Reverse Proxy und Load Balancing für professionelle Setups
- Security: Häufige Sicherheitsfehler und wie man sie vermeidet
- Docker Cheat Sheet: Die wichtigsten Befehle auf einen Blick
- … und mehr: Ich füge immer wieder neue Inhalte hinzu, um den Guide aktuell und relevant zu halten.
Warum Docker überhaupt?
Docker löst ein grundlegendes Problem der Softwareentwicklung: “It works on my machine” wird zu “It works everywhere”.
Ein Beispiel: Du entwickelst eine Anwendung, die Node.js 18, PostgreSQL 15 und Redis benötigt. Ohne Docker muss jeder im Team diese exakten Versionen installieren und konfigurieren. Mit Docker? Ein docker compose up
und die komplette Entwicklungsumgebung läuft – identisch bei allen.
Docker ist aber mehr als nur ein Deployment-Tool. Es macht Anwendungen portabel, skalierbar und wartbar.
Los geht’s!
Dieser Blogpost ist eine Momentaufnahme - das Repository wird weiterentwickelt und aktualisiert. Für die Inhalte und alle praktischen Übungen schaue bitte direkt ins GitHub Repository.
Der Guide ist so strukturiert, dass du ihn komplett durcharbeiten oder dir die Teile herauspicken kannst, die dich interessieren. Jeder Ordner enthält eine funktionsfähige Beispielanwendung, mit der du sofort experimentieren kannst.
Klone das Repo, folge der README, und in ein paar Stunden wirst du Docker nicht nur verwenden können – du wirst verstehen, warum es die moderne Softwareentwicklung revolutioniert hat.
git clone https://github.com/ValentinKolb/docker-demo.git
cd docker-demo
# Und schon kann's losgehen!
Viel Spaß beim containerizen 🐳