„Bei mir läuft es aber“ ist einer der bekanntesten Sätze in der Softwareentwicklung. Genau hier setzt Docker an. Hier bekommst du Docker einfach erklärt, ohne Vorwissen. Du erfährst, was Container, Images und Dockerfiles sind, was Docker Compose macht, worin sich Docker von einer virtuellen Maschine unterscheidet und wo die Grenzen liegen.
Das Wichtigste in Kürze
- Docker verpackt eine Anwendung samt allem, was sie zum Laufen braucht, in einen isolierten Container.
- Ein Image ist die unveränderliche Vorlage, ein Container die laufende Instanz davon.
- Ein Dockerfile ist eine Textdatei mit den Bauschritten für ein Image, Docker Hub ist die voreingestellte öffentliche Registry.
- Mit Docker Compose beschreibst du mehrere Container in einer YAML-Datei und startest sie mit einem Befehl.
- Container teilen sich den Kernel des Host-Systems (unter Docker Desktop den Kernel einer Linux-VM), eine virtuelle Maschine bringt ein komplettes eigenes Betriebssystem mit.
- Docker Desktop ist laut Docker kostenlos für Privatleute, Bildung, nicht kommerzielle Open-Source-Projekte und Firmen mit weniger als 250 Beschäftigten und unter 10 Millionen US-Dollar Jahresumsatz (Stand: Oktober 2026).
Was ist Docker? Die kurze Antwort
Docker beschreibt sich selbst als offene Plattform, um Anwendungen zu entwickeln, auszuliefern und auszuführen. Der Kern ist der Container, eine lose isolierte Umgebung, in der eine Anwendung läuft. Laut Docker-Dokumentation enthält ein Container alles, was die Anwendung braucht. Du musst dich also nicht darauf verlassen, was auf dem Rechner bereits installiert ist.
Stell dir eine Web-App mit drei Bausteinen vor, etwa ein Frontend, eine Programmierschnittstelle und eine Datenbank. Ohne Container müsstest du alle passenden Versionen von Programmiersprache, Bibliotheken und Datenbank auf deinem Rechner installieren und hoffen, dass sie sich nicht in die Quere kommen. Mit Docker läuft jeder Baustein in seinem eigenen Container. Löschst du einen davon, bleiben die anderen unberührt.
Technisch arbeitet Docker nach dem Client-Server-Prinzip. Der Docker-Client (der Befehl docker im Terminal) schickt deine Befehle an den Docker-Daemon dockerd. Dieser Hintergrunddienst baut, startet und verteilt die Container. Die Software selbst, die Docker Engine, ist Open Source und steht unter der Apache-Lizenz 2.0.
Die Grundbegriffe Dockerfile, Image, Container und Registry
Diese vier Begriffe bauen aufeinander auf, deshalb lohnt sich die Reihenfolge.
Das Dockerfile als Rezept
Ein Dockerfile ist laut Docker ein textbasiertes Dokument, aus dem ein Container-Image entsteht. Darin steht Zeile für Zeile, welche Befehle ausgeführt, welche Dateien kopiert und welches Programm beim Start aufgerufen werden soll. Die häufigsten Anweisungen sind diese.
- FROM legt das Basis-Image fest, auf dem du aufbaust, zum Beispiel ein Image mit Python.
- WORKDIR bestimmt das Arbeitsverzeichnis im Image.
- COPY kopiert Dateien von deinem Rechner ins Image.
- RUN führt beim Bauen einen Befehl aus, etwa eine Paketinstallation.
- CMD legt den Standardbefehl fest, mit dem ein Container aus diesem Image startet.
Das Image als unveränderliche Vorlage
Aus dem Dockerfile baust du mit docker build ein Image. Docker nennt es eine schreibgeschützte Vorlage mit Anweisungen zum Erstellen eines Containers. Zwei Eigenschaften sind wichtig. Ein fertiges Image lässt sich nicht mehr verändern, du kannst nur ein neues erstellen oder Änderungen darauf aufsetzen.
Außerdem besteht jedes Image aus Schichten (Layern). Ändert sich das Dockerfile, baut Docker nur die geänderten Schichten neu. Das macht Images schlank und schnell.
Der Container als laufende Instanz
Ein Container ist eine ausführbare Instanz eines Images. Du kannst ihn erstellen, starten, stoppen, verschieben oder löschen. Beim Start bekommt jeder Container eine eigene beschreibbare Dateisystem-Schicht. Deshalb können sich mehrere Container dasselbe Image teilen und trotzdem eigene Daten haben. Für die Abschottung nutzt Docker eine Linux-Kernel-Funktion namens Namespaces, die jedem Container einen eigenen, abgegrenzten Arbeitsbereich gibt.
Die Registry als Lager für Images
Eine Registry ist ein zentraler Ort, an dem Images gespeichert und geteilt werden. Sie kann öffentlich oder privat sein. Docker Hub ist die öffentliche Registry, die Docker standardmäßig verwendet. Laut Docker bietet sie über 100.000 Images, die du lokal ausführen kannst.
Daneben gibt es weitere Registrys, etwa von Amazon (ECR) oder Microsoft Azure. Mit docker pull holst du ein Image, mit docker push lädst du dein eigenes hoch.

Docker Compose einfach erklärt
Sobald eine Anwendung aus mehreren Containern besteht, wird es mit einzelnen Befehlen schnell unübersichtlich. Jeden Container mit den richtigen Optionen starten, Netzwerke anlegen, hinterher aufräumen, das summiert sich.
Docker Compose ist ein Werkzeug, um Anwendungen mit mehreren Containern zu definieren und auszuführen. Alle Dienste, Netzwerke und Volumes beschreibst du in einer einzigen YAML-Datei, zum Beispiel compose.yaml. YAML ist ein einfaches, gut lesbares Textformat für Konfigurationen. Mit docker compose up startest du den ganzen Verbund, mit docker compose down entfernst du Container und Netzwerke wieder. Volumes bleiben dabei standardmäßig erhalten, damit deine Daten nicht verloren gehen.
Der Unterschied zum Dockerfile ist schnell erklärt. Das Dockerfile beschreibt, wie ein Image gebaut wird. Die Compose-Datei legt fest, welche Container laufen und wie sie zusammenspielen. Oft verweist eine Compose-Datei auf ein Dockerfile, um daraus das Image für einen Dienst zu bauen. Liegt die Datei im Code-Repository, kann jeder, der das Projekt herunterlädt, die Anwendung mit einem einzigen Befehl starten.
Container vs. virtuelle Maschine
Eine virtuelle Maschine (VM) ist laut Docker ein ganzes Betriebssystem mit eigenem Kernel, Hardwaretreibern und Programmen. Der Kernel ist der innerste Teil des Betriebssystems, der zwischen Programmen und Hardware vermittelt. Ein Container ist dagegen nur ein isolierter Prozess mit den Dateien, die er braucht. Mehrere Container teilen sich den Kernel des Host-Systems.
Die Angaben in der Tabelle stammen aus der Docker-Dokumentation und dem BSI-Baustein SYS.1.6 Containerisierung.
| Merkmal | Container | Virtuelle Maschine |
|---|---|---|
| Betriebssystem | kein vollständiges eigenes, nutzt den Kernel des Hosts mit | komplettes Betriebssystem mit eigenem Kernel |
| Inhalt | isolierter Prozess plus die nötigen Dateien | Kernel, Hardwaretreiber, Programme und Anwendungen |
| Ressourcen | gemeinsamer Kernel, dadurch mehr Anwendungen auf weniger Infrastruktur | für eine einzelne Anwendung laut Docker viel Overhead, also Zusatzlast |
Oft ergänzen sich beide. In der Cloud sind die bereitgestellten Maschinen laut Docker meist VMs, auf denen dann mehrere containerisierte Anwendungen laufen. So wird die Hardware besser ausgelastet.
Wofür du Docker nutzen kannst
Aus Dockers eigener Übersicht ergeben sich diese typischen Einsatzfelder.
- Einheitliche Entwicklungsumgebung: Alle im Team arbeiten mit denselben Containern und damit in einer standardisierten Umgebung.
- Testen und Ausliefern: Container eignen sich laut Docker gut für automatisierte Abläufe, bei denen Code laufend getestet und ausgeliefert wird (CI/CD).
- Portabilität: Derselbe Container läuft auf dem Laptop, auf Servern im Rechenzentrum oder bei einem Cloud-Anbieter.
- Skalieren: Dienste lassen sich bei Bedarf schnell hoch- oder herunterfahren.
- Mehr auf derselben Hardware: Weil Container leichtgewichtig sind, passen mehr Anwendungen auf einen Server als mit einzelnen VMs.
Auch für kleine Teams ist das praktisch. Wer etwa eine Web-Anwendung mit Datenbank testen will, startet beides per Compose-Datei, probiert es aus und räumt danach mit einem Befehl wieder auf.
Grenzen und Stolperfallen
Einige Punkte solltest du kennen, bevor du loslegst.
Daten verschwinden mit dem Container
Wird ein Container entfernt, sind laut Docker alle Änderungen weg, die nicht in einem dauerhaften Speicher liegen. Für Daten, die bleiben sollen, gibt es Volumes. Das sind von Docker verwaltete, dauerhafte Datenspeicher für Container. Laut Docker sind Volumes der bevorzugte Weg, Daten dauerhaft zu speichern, etwa die Dateien einer Datenbank.
Isolation ist nicht absolut
Container teilen sich den Kernel des Hosts, Docker selbst spricht von einer lose isolierten Umgebung. Das BSI beschreibt im IT-Grundschutz-Baustein SYS.1.6 (Edition 2023) das Risiko eines „Container-Ausbruchs“, bei dem ein Angreifer über Schwachstellen etwa im Kernel auf das Host-System zugreifen könnte. Außerdem fordert der Baustein, dass Images nur aus vertrauenswürdigen Quellen stammen und erkennbar ist, wer sie erstellt hat. Lade also nicht wahllos Images aus dem Netz.
Docker Desktop braucht einen Linux-Unterbau
Docker nutzt Funktionen des Linux-Kernels. Docker Desktop, das es für Mac, Windows und Linux gibt, betreibt laut Docker eine Linux-VM, in der die Container laufen. Gemeint ist mit „Host-Kernel“ dann der Kernel dieser VM, nicht der von Windows oder macOS. Unter Windows verwendet Docker Desktop dafür standardmäßig WSL 2, das Windows-Subsystem für Linux. Alternativ gibt es Docker VMM (Beta) und, nur bei einer Installation für alle Benutzer, Hyper-V.
Lizenz bei größeren Firmen
Laut Docker-Lizenzseite ist Docker Desktop kostenlos für kleine Unternehmen mit weniger als 250 Beschäftigten und weniger als 10 Millionen US-Dollar Jahresumsatz, für die private Nutzung, für Bildung und für nicht kommerzielle Open-Source-Projekte. Für die berufliche Nutzung in größeren Organisationen und für Behörden ist ein kostenpflichtiges Abo (Pro, Team oder Business) nötig. Stand: Oktober 2026. Aktuelle Preise findest du auf der Preisseite von Docker.
So probierst du Docker aus
Für den Einstieg reicht Docker Desktop. Es bringt laut Docker den Daemon, den Client, Docker Compose und weitere Werkzeuge in einem Paket mit. In der eigenen Einführung nutzt Docker als ersten Container eine kleine Beispiel-Website.
- Installiere Docker Desktop und starte die Anwendung.
- Öffne ein Terminal und gib
docker run -d -p 8080:80 docker/welcome-to-dockerein. Fehlt das Image auf deinem Rechner, lädt Docker es aus der Registry, startet daraus einen Container und gibt dessen ID aus. - Der Teil
-p 8080:80macht einen Port des Containers auf deinem Rechner erreichbar. Unterhttp://localhost:8080siehst du im Browser die Beispiel-Website. docker pszeigt dir die laufenden Container,docker ps -aauch die gestoppten.- Mit
docker stopund der Container-ID oder dem Namen hältst du den Container an.
Hast du statt Docker Desktop nur die Docker Engine unter Linux installiert, nennt Docker als Funktionstest sudo docker run hello-world. Der Befehl lädt ein Test-Image, startet es in einem Container, gibt eine Bestätigung aus und beendet sich wieder.
Wer lieber klickt, kann Images auch in der grafischen Oberfläche von Docker Desktop suchen, herunterladen und starten.
Fazit
Docker einfach erklärt heißt im Kern, dass eine Anwendung mit allem, was sie braucht, in einen Container wandert. Das Dockerfile ist das Rezept, das Image die unveränderliche Vorlage, der Container die laufende Kopie und die Registry das Lager. Docker Compose hält mehrere Container in einer Datei zusammen.
Gegenüber einer VM sind Container leichter, weil sie den Kernel des Hosts mitnutzen. Dafür hängt ihre Abschottung an diesem gemeinsamen Kernel. Zum Einstieg installierst du Docker Desktop, startest den Beispiel-Container und wagst dich dann an eine eigene Compose-Datei. Achte dabei von Anfang an auf Volumes und vertrauenswürdige Images.
Häufige Fragen
Was ist ein Docker-Container einfach erklärt?
Ein Docker-Container ist ein abgeschotteter Prozess, der eine Anwendung samt aller benötigten Dateien enthält. Er ist nicht darauf angewiesen, was auf dem Rechner sonst installiert ist. Mehrere Container teilen sich den Kernel des Betriebssystems.
Was ist der Unterschied zwischen Image und Container?
Das Image ist die schreibgeschützte Vorlage, der Container die laufende Instanz davon. Aus einem Image kannst du mehrere Container starten. Änderungen im Container verändern das Image nicht.
Was macht Docker Compose?
Docker Compose beschreibt Anwendungen mit mehreren Containern in einer YAML-Datei. Mit docker compose up startest du alle Dienste gemeinsam, docker compose down entfernt Container und Netzwerke wieder. Volumes bleiben standardmäßig erhalten.
Ist Docker kostenlos?
Die Docker Engine ist Open Source. Docker Desktop ist laut Docker für Privatleute, Bildung, nicht kommerzielle Open-Source-Projekte und kleine Firmen (unter 250 Beschäftigte und unter 10 Millionen US-Dollar Jahresumsatz) kostenlos. Größere Organisationen brauchen ein kostenpflichtiges Abo (Stand: Oktober 2026).
Ersetzt Docker eine virtuelle Maschine?
Nicht unbedingt. Container sind leichter, weil sie kein eigenes Betriebssystem mitbringen, teilen sich dafür aber den Kernel des Hosts. In der Cloud laufen Container häufig innerhalb von VMs, beide Techniken ergänzen sich also.
Quellen & Belege
- Docker Docs: What is Docker? – belegt: offene Plattform, Client-Server-Architektur mit dockerd, Image als schreibgeschützte Vorlage, Layer-Neubau, Container als ausführbare Instanz, lose isolierte Umgebung, Linux-Kernel-Funktionen, Namespaces, Docker Desktop für Mac, Windows und Linux mit Daemon, Client und Compose, Einsatzfelder
- Docker Docs: What is a container? – belegt: Beispiel mit Frontend, API und Datenbank, Unterschied Container und VM, gemeinsamer Kernel, VMs und Container zusammen in der Cloud, Beispiel docker/welcome-to-docker mit Port 8080 und localhost:8080, Befehle docker ps, docker ps -a, docker stop
- Docker Docs: What is an image? – belegt: Images sind unveränderlich und bestehen aus Layern, Docker Hub mit über 100,000 Images
- Docker Docs: What is a registry? – belegt: Registry öffentlich oder privat, Docker Hub als Standard-Registry, weitere Registrys wie Amazon ECR und Azure
- Docker Docs: Writing a Dockerfile – belegt: Dockerfile als textbasiertes Dokument, Anweisungen FROM, WORKDIR, COPY, RUN, CMD
- Docker Docs: What is Docker Compose? – belegt: alle Container in einer YAML-Datei, Unterschied Dockerfile und Compose-Datei, docker compose up und down, Volumes werden beim Abbau standardmäßig nicht entfernt
- Docker Docs: Docker Compose – belegt: Werkzeug für Anwendungen mit mehreren Containern, Dienste, Netzwerke und Volumes in einer YAML-Datei, Start mit einem Befehl
- Docker Docs: Docker Engine – belegt: Docker Engine ist Open Source, Apache License 2.0
- Docker Docs: Storage drivers – belegt: eigene beschreibbare Schicht je Container, mehrere Container teilen sich dasselbe Image, Image bleibt unverändert
- Docker Docs: Volumes – belegt: Volumes sind von Docker verwaltete, dauerhafte Datenspeicher für Container
- Docker Docs: Install Docker Engine on Ubuntu – belegt: Test der Docker Engine mit sudo docker run hello-world, Image wird geladen, Bestätigung ausgegeben, Container beendet
- Docker Docs: Install Docker Desktop on Windows – belegt: WSL 2 als Standard-Backend, Docker VMM (Beta), Hyper-V nur bei Installation für alle Benutzer
- Docker Docs: Virtual Machine Manager – belegt: Docker Desktop betreibt eine Linux-VM, in der die Container laufen
- Docker Docs: Docker Desktop license agreement – belegt: kostenlos für kleine Unternehmen unter 250 Beschäftigten und unter $10 million Jahresumsatz, private Nutzung, Bildung, nicht kommerzielle Open-Source-Projekte, Abo-Pflicht für größere Organisationen und Behörden, Pro, Team und Business
- BSI: IT-Grundschutz-Baustein SYS.1.6 Containerisierung – belegt: geteilter Kernel statt vollständig virtualisiertem Betriebssystem, Risiko Container-Ausbruch über Schwachstellen etwa im Kernel, Images nur aus vertrauenswürdigen Quellen
Stand: Oktober 2026. Menüs und Funktionen können sich mit Updates ändern. Angaben ohne eigene Quelle sind redaktionelle Erfahrungswerte.
Bildnachweis Beitragsbild: Foto Paul .T / Unsplash


