Docker Tutorial Deutsch – Serie Teil 1: Grundlagen, Konzepte und Installation
Es war ein Sonntagabend. Jellyfin lief nicht, Home Assistant schmierte nach jedem Windows-Update ab, und ich hatte drei verschiedene Python-Versionen auf meinem Rechner, die sich gegenseitig das Leben schwer machten. Ich kannte das Gefühl: zu viele Programme, zu viele Abhängigkeiten, zu viel Chaos. Ein Kollege tippte mir dann auf die Schulter und sagte drei Worte, die mein Heimnetzwerk für immer verändert haben: „Lern mal Docker.“
Ich hab’s ignoriert. Zwei Wochen lang.
Dann saß ich wieder vor einem kaputten Setup – und diesmal hab ich es wirklich getan. Was folgte, war eine steile Lernkurve, einige Facepalm-Momente und am Ende das Gefühl, endlich die Kontrolle über mein System zurückzuhaben. Genau das möchte ich dir in dieser dreiteiligen Serie zeigen.

Teil 1 (dieser Artikel): Was Docker überhaupt ist, wie du es auf Windows installierst und wie du deinen ersten Container zum Laufen bringst.
Teil 2: Docker Compose einrichten und verstehen – damit du mehrere Container elegant verwaltest. (in Kürze hier)
Teil 3: Home Assistant und Jellyfin im Container – praktisches Selfhosting für zuhause. (in Kürze hier)
Fangen wir an.
Was Docker eigentlich ist – und was es nicht ist
Bevor ich dir zeige, wie man Docker installiert, möchte ich kurz erklären, warum das überhaupt sinnvoll ist. Ich hab mir das damals selbst gewünscht.
Stell dir vor, du ziehst in eine neue Wohnung um. Normalerweise trägst du jeden einzelnen Möbelstücke raus, lädst es auf einen Transporter und hoffst, dass in der neuen Wohnung die Schrauben noch passen. Manchmal passen sie nicht. Manchmal ist das Sofa einen Zentimeter zu breit.
Docker ist wie ein Umzugsunternehmen, das dein gesamtes Zimmer – Möbel, Wandfarbe, Lampen – in eine Kiste packt und garantiert, dass es am Zielort genauso aussieht wie vorher. Diese Kiste nennt sich Container.
Container vs. Virtuelle Maschine – der Unterschied, den du kennen musst
Viele denken, Docker sei wie VirtualBox oder VMware – also eine virtuelle Maschine. Das ist nicht ganz richtig.
Eine Virtuelle Maschine (VM) emuliert komplette Hardware. Sie braucht ein eigenes Betriebssystem, eigenen Arbeitsspeicher, eigene CPU-Ressourcen. Das ist ressourcenintensiv und langsam beim Start.
Ein Docker Container hingegen teilt sich den Kernel (das Herzstück) des Host-Betriebssystems. Er bringt nur mit, was er wirklich braucht: seine eigenen Bibliotheken, seine Konfiguration, seinen Code. Das Ergebnis: Container starten in Sekunden, verbrauchen viel weniger RAM und lassen sich problemlos auf jedem System ausführen, das Docker versteht.
Die wichtigsten Begriffe – einfach erklärt
Bevor wir zur Installation kommen, klären wir kurz das Vokabular. Du wirst diese Begriffe immer wieder hören.
Image (Abbild): Das ist die Vorlage. Stell es dir wie eine ISO-Datei vor – ein eingefrorener Zustand eines Systems. Ein Image enthält alles, was ein Container zum Starten braucht. Images sind unveränderlich.
Container: Ein laufendes Image. Wenn du ein Image startest, entsteht ein Container. Du kannst aus demselben Image hundert Container starten – alle laufen unabhängig voneinander.
Dockerfile: Eine Textdatei mit Anweisungen, wie ein Image gebaut werden soll. Wenn du dein eigenes Image erstellen willst, brauchst du ein Dockerfile. Mehr dazu weiter unten.
Docker Hub: Der öffentliche Marktplatz für Images. So etwas wie der App Store für Docker. Du findest dort fertige Images für fast alles: Nginx, PostgreSQL, Jellyfin, Home Assistant
Volume: Ein Bereich auf deiner Festplatte, den ein Container dauerhaft nutzen darf. Container an sich sind flüchtig – sobald du sie löschst, sind die Daten weg. Mit einem Volume bleiben Daten erhalten, auch wenn der Container neu gestartet wird.
Port-Mapping: Container sind isoliert. Von außen kommst du nicht ran – außer du öffnest explizit Ports. Port-Mapping verbindet einen Port deines Rechners mit einem Port im Container.
Das klingt nach viel auf einmal. Keine Sorge – beim Durcharbeiten der Schritte werden sich diese Begriffe ganz natürlich setzen.
Voraussetzungen für die Installation auf Windows
Ich gehe davon aus, dass du Windows 10 oder Windows 11 nutzt. Hier ist, was du brauchst:
Betriebssystem: Windows 10 64-Bit (Version 21H2 oder neuer) oder Windows 11. Ältere Versionen funktionieren nicht zuverlässig.
Arbeitsspeicher: Mindestens 4 GB RAM. Empfohlen sind 8 GB oder mehr, wenn du mehrere Container gleichzeitig betreiben möchtest.
Festplattenspeicher: Mindestens 10 GB freien Speicherplatz. Images können groß werden.
Prozessor: 64-Bit-CPU mit aktivierter Virtualisierung.
WSL 2: Das Windows Subsystem for Linux in Version 2. Das ist die technische Grundlage, auf der Docker unter Windows läuft. Wir aktivieren das gleich.
Schritt 0: Prüfe, ob Virtualisierung aktiv ist
Öffne den Task-Manager (Strg + Shift + Esc), gehe auf den Reiter „Leistung“ und klicke auf CPU. Unten in der Liste siehst du „Virtualisierung: Aktiviert“ – oder eben nicht.
Falls sie deaktiviert ist, musst du ins BIOS/UEFI deines Rechners. Das klingt gefährlicher als es ist: PC beim Neustart mit der Taste Del, F2 oder F10 unterbrechen (je nach Hersteller), dort nach „Intel VT-x“, „AMD-V“ oder „SVM“ suchen und aktivieren. Google kennt die genaue Tastenkombination für dein Motherboard.
Schritt 1: WSL 2 installieren
WSL steht für „Windows Subsystem for Linux“. Es erlaubt dir, Linux direkt unter Windows auszuführen – und Docker braucht genau das.
Öffne PowerShell als Administrator. Das geht so: Suchleiste öffnen, „PowerShell“ eintippen, Rechtsklick → „Als Administrator ausführen“.
Dann tippst du diesen Befehl ein und drückst Enter:
wsl --install
Windows lädt jetzt automatisch WSL 2 und Ubuntu als Linux-Distribution herunter. Das dauert ein paar Minuten. Am Ende wirst du aufgefordert, deinen PC neu zu starten.
Nach dem Neustart öffnet sich ein Ubuntu-Fenster und fragt nach einem Benutzernamen und Passwort. Denk dir etwas Einfaches aus – das ist nur für diese Linux-Umgebung.
Falls WSL bereits installiert ist, stelle sicher, dass du Version 2 nutzt:
wsl --set-default-version 2
wsl --update
Schritt 2: Docker Desktop herunterladen und installieren
Gehe auf docker.com und lade Docker Desktop für Windows herunter.
Starte die Installationsdatei (Docker Desktop Installer.exe). Im Installationsassistenten erscheint eine wichtige Option:
- „Use WSL 2 instead of Hyper-V“ – diese Option sollte ausgewählt sein. WSL 2 ist schneller und läuft auch auf Windows Home.
- „Add shortcut to desktop“ – nach Wunsch.
Klicke auf OK und lass den Installer durchlaufen. Nach der Installation wird ein Neustart empfohlen.
Nach dem Neustart startet Docker Desktop nicht automatisch – du musst es einmal manuell über das Startmenü öffnen. Beim ersten Start musst du den Nutzungsbedingungen zustimmen.
Hinweis zu den Lizenzkosten: Docker Desktop ist kostenlos für den privaten Gebrauch, Bildung und kleine Unternehmen (unter 250 Mitarbeiter und unter 10 Millionen USD Umsatz). Für Homelab und Hobbyprojekte brauchst du dir keine Sorgen zu machen.
Schritt 3: Testen, ob alles funktioniert
Öffne jetzt ein neues PowerShell- oder CMD-Fenster (normales, kein Administrator). Tippe:
docker --version
Du solltest so etwas sehen:
Docker version 27.x.x, build xxxxxxx
Super. Jetzt der echte Test – der traditionelle erste Schritt jedes Docker-Einsteigen:
docker run hello-world
Docker lädt jetzt automatisch ein kleines Test-Image herunter und startet es. Die Ausgabe sollte sinngemäß lauten: „Hello from Docker! This message shows that your installation appears to be working correctly.“
Herzlichen Glückwunsch. Du hast soeben deinen ersten Docker Container gestartet.
Schritt 4: Dein erster richtiger Container – Nginx als Webserver
„Hello World“ ist schön, aber ich weiß noch, wie wenig das anfangs bedeutet. Lass uns etwas Sichtbares machen.
Wir starten einen Nginx-Webserver (Nginx ist eine populäre Webserver-Software) als Docker Container:
docker run -d -p 8080:80 --name mein-webserver nginx
Lass mich diesen Befehl aufdröseln, weil du ihn so oder ähnlich sehr oft sehen wirst:
docker run– startet einen neuen Container-d– „detached“: Container läuft im Hintergrund-p 8080:80– Port-Mapping: Port 8080 auf deinem PC wird mit Port 80 im Container verbunden--name mein-webserver– wir geben dem Container einen eigenen Namennginx– das Image, das wir verwenden (wird automatisch von Docker Hub geladen)
Öffne jetzt deinen Browser und gehe zu http://localhost:8080. Du siehst die Nginx-Willkommensseite.
Um deinen Container zu stoppen:
docker stop mein-webserver
Und um ihn vollständig zu löschen:
docker rm mein-webserver
Ein Dockerfile erstellen – eigene Images bauen
Bisher haben wir nur fertige Images benutzt. Irgendwann willst du eigene Images bauen – zum Beispiel wenn du eine eigene App in einem Container verpacken möchtest.
Dafür ist das Dockerfile zuständig.
Erstelle einen neuen Ordner, zum Beispiel C:\docker-test, und lege dort eine Datei namens Dockerfile (ohne Dateiendung!) an. Öffne sie mit einem Texteditor (Notepad geht, VS Code ist besser) und füge Folgendes ein:
# Wir starten mit einem offiziellen Python-Image als Basis
FROM python:3.12-slim
# Wir setzen das Arbeitsverzeichnis im Container
WORKDIR /app
# Wir kopieren unsere lokale Datei in den Container
COPY app.py .
# Beim Start des Containers wird dieses Kommando ausgeführt
CMD ["python", "app.py"]
Erstelle im selben Ordner eine app.py:
print("Hallo aus meinem ersten Docker Container!")
Jetzt baust du dein Image. Öffne PowerShell, wechsle in den Ordner (cd C:\docker-test) und führe aus:
docker build -t mein-python-app .
Der Punkt am Ende bedeutet: „Dockerfile aus dem aktuellen Verzeichnis verwenden“. Nach dem Build kannst du das Image direkt starten:
docker run mein-python-app
Ausgabe:
Hallo aus meinem ersten Docker Container!
Genau so baut man eigene Images. In der Praxis ist das Dockerfile natürlich komplexer – aber das Prinzip ist immer dasselbe: Basisimage wählen, Dateien kopieren, Abhängigkeiten installieren, Startbefehl definieren.
Troubleshooting: Die häufigsten Probleme und wie ich sie gelöst habe
Ich wäre nicht ehrlich, wenn ich behaupten würde, dass bei mir alles auf Anhieb funktioniert hat.
Problem: „Docker Desktop startet nicht“ Häufigstes Ursache: Virtualisierung ist im BIOS deaktiviert, oder WSL 2 wurde nicht korrekt installiert. Überprüfe beides wie oben beschrieben. Ein Neustart nach der WSL-Installation hilft oft.
Problem: „WSL 2 installation is incomplete“ Docker zeigt diesen Fehler manchmal beim ersten Start. Lösung: PowerShell als Admin öffnen und wsl --update eingeben, dann Docker neu starten.
Problem: Port-Konflikte (Port already in use) Du versuchst Port 8080 zu nutzen, aber etwas anderes belegt ihn bereits. Lösung: Nutze einen anderen Port. Statt -p 8080:80 nimm -p 8081:80 oder irgendeine andere freie Portnummer.
Problem: Container startet, aber ich sehe nichts im Browser Vergiss nicht http:// vor dem localhost. Und überprüfe das Port-Mapping im docker ps Befehl – der zeigt alle laufenden Container mit ihren Ports an.
Problem: Docker ist langsam Docker Desktop kann unter Windows ressourcenintensiv sein. In den Docker-Einstellungen unter „Resources“ kannst du die maximale RAM- und CPU-Nutzung begrenzen. Für normales Arbeiten reichen 4 GB RAM für Docker völlig aus.
Problem: „permission denied“ Fehler Stelle sicher, dass dein Windows-Benutzer der Gruppe docker-users angehört. Das lässt sich über die Computerverwaltung (Rechtsklick auf „Dieser PC“ → Verwalten → Lokale Benutzer und Gruppen → Gruppen → docker-users) erledigen.
Wichtige Docker-Befehle, die du täglich brauchst
Diese kurze Referenz wollte ich mir damals als Spickzettel aufhängen:
# Alle laufenden Container anzeigen
docker ps
# Alle Container anzeigen (auch gestoppte)
docker ps -a
# Alle heruntergeladenen Images anzeigen
docker images
# Container stoppen
docker stop [container-name]
# Container löschen
docker rm [container-name]
# Image löschen
docker rmi [image-name]
# Logs eines Containers anzeigen
docker logs [container-name]
# In einen laufenden Container „einsteigen" (interaktive Shell)
docker exec -it [container-name] /bin/bash
# Aufräumen: Alle ungenutzten Container, Images, Netzwerke löschen
docker system prune
Merk dir vor allem docker ps, docker logs und docker exec – das sind die drei Befehle, die du bei der Fehlersuche am häufigsten brauchst.
Was Docker GUI-Tool dir das Leben leichter macht
Docker Desktop bringt eine grafische Oberfläche mit. Die ist für den Einstieg durchaus nützlich: Du siehst alle Container auf einen Blick, kannst sie starten, stoppen und die Logs direkt im Browser lesen – ohne die Kommandozeile.
Für erfahrenere Nutzer lohnt sich außerdem ein Blick auf Portainer, ein webbasiertes Container-Management-Tool, das du selbst als Docker Container laufen lässt. Aber das kommt in Teil 2.
Fazit: Der Weg hat sich gelohnt
Ich weiß noch genau, wie überfordert ich beim ersten Blick auf Docker war. Terminals, Befehle, Images, Layer – das hat anfangs wie eine andere Sprache gewirkt.
Aber wenn es klick macht, wenn zum ersten Mal ein Container hochkommt und der Webserver einfach läuft – ohne Installation, ohne Konfigurationshölle – dann verstehst du, warum Millionen Entwickler und Hobbybastler nicht mehr ohne Docker arbeiten wollen.
Du hast heute gelernt:
- Was Docker ist und wie es sich von virtuellen Maschinen unterscheidet
- Was Images, Container, Volumes und Dockerfiles sind
- Wie du Docker Desktop auf Windows installierst
- Wie du deinen ersten Container startest
- Wie ein einfaches Dockerfile aussieht
- Wie du die häufigsten Probleme löst
Das ist eine solide Grundlage.
In Teil 2 dieser Serie tauchen wir in Docker Compose ein. Wenn du bisher nur einzelne Container von Hand gestartet hast, wirst du Compose lieben: Du beschreibst in einer einzigen Textdatei, welche Container du brauchst, wie sie miteinander kommunizieren und welche Volumes sie verwenden – und startest alles mit einem einzigen Befehl. Genau das, was du für ein richtiges Homelab brauchst.
Nächster Artikel: [Teil 2 – Docker Compose einrichten für Selfhosting: Mehrere Container, eine Datei, volle Kontrolle]
Übernächster Artikel: [Teil 3 – Home Assistant & Jellyfin im Docker Container: Homelab-Setup Schritt für Schritt]
