Docker installieren und konfigurieren: Windows, macOS und Linux
Docker startet Anwendungen in Containern. Ein Image liefert die Vorlage, ein Container ist die daraus gestartete Instanz. Container sind praktisch für Entwicklungsumgebungen und klar getrennte Dienste. Sie müssen trotzdem aktualisiert, abgesichert und bei Bedarf mit dauerhaften Daten-Volumes ausgestattet werden.
Diese Anleitung beginnt mit Docker Desktop unter Windows. Anschließend folgen die Unterschiede für macOS und Linux sowie ein kleiner Funktionstest mit Docker Compose.
Welches Docker-Paket passt zum Betriebssystem?
| Betriebssystem | Üblicher Installationsweg | Worauf du achten solltest |
|---|---|---|
| Windows 11 | Docker Desktop mit WSL 2 und Linux-Containern | Eine von Microsoft noch unterstützte Windows-Version, aktivierte Virtualisierung und eine aktuelle WSL-Version verwenden. |
| Windows 10 | Docker Desktop nur, wenn die konkrete Windows-Ausgabe noch unterstützt wird | Die bloße Versionsnummer 22H2 genügt nicht: Docker setzt auch voraus, dass Windows noch innerhalb des Microsoft-Supportzeitraums liegt. |
| macOS | Docker Desktop für Apple Silicon oder Intel | Docker unterstützt die aktuelle und die beiden vorherigen Hauptversionen von macOS. |
| Linux | Meist Docker Engine aus dem offiziellen Docker-Paketrepository | Die unterstützten Distributionen und Versionen unterscheiden sich. Für Ubuntu nennt Docker derzeit 22.04, 24.04 und 26.04 LTS. |
Docker Desktop ist nicht für Windows Server vorgesehen. Prüfe vor einer Neuinstallation die jeweils aktuellen Systemanforderungen in der Docker-Dokumentation. Für die geschäftliche Nutzung von Docker Desktop können zudem Lizenzbedingungen gelten.
Docker Desktop unter Windows installieren
- Prüfe im BIOS oder UEFI, ob die Hardwarevirtualisierung aktiviert ist.
- Öffne PowerShell und prüfe WSL mit
wsl --version. Docker verlangt für den WSL-2-Betrieb mindestens WSL 2.1.5; eine aktuelle Version ist sinnvoll. Falls WSL fehlt oder veraltet ist, installiere beziehungsweise aktualisiere es mit Administratorrechten und starte Windows bei Aufforderung neu. - Lade Docker Desktop ausschließlich über die offizielle Docker-Website herunter.
- Wähle bei der Installation für einen einzelnen Arbeitsplatz nach Möglichkeit die angebotene Installation für den aktuellen Benutzer. Für die üblichen Linux-Container ist WSL 2 der passende Backend-Weg.
- Starte Docker Desktop nach der Installation. Warte, bis die Engine betriebsbereit ist.
wsl --version
wsl --update
Der Befehl wsl --update ist nur nötig, wenn WSL aktualisiert werden soll. Für den ersten Einsatz von WSL können einmalig Administratorrechte erforderlich sein. Docker Desktop braucht unter Windows mit WSL 2 nicht pauschal ein zusätzlich aktiviertes Hyper-V-Feature.
macOS und Linux: der wichtige Unterschied
Auf einem Mac installierst du Docker Desktop mit dem Installer für Apple Silicon oder Intel. Unter Linux wird auf Servern häufig direkt die Docker Engine installiert. Docker Desktop gibt es auch für unterstützte Linux-Desktop-Distributionen, läuft dort aber in einer eigenen virtuellen Maschine. Eine vorhandene Linux-Docker-Engine und Docker Desktop können daher unterschiedliche Container und Images anzeigen.
Für Ubuntu empfiehlt Docker die Installation über sein offizielles apt-Repository. Nachdem dieses Repository nach der Docker-Anleitung eingerichtet wurde, installiert beziehungsweise aktualisiert der folgende Befehl Engine, CLI, Buildx und das Compose-Plugin:
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Führe diesen Befehl nicht auf einer unveränderten Ubuntu-Installation aus und erwarte dadurch automatisch die offiziellen Docker-Pakete: Zuerst muss das Docker-Repository eingerichtet sein. Für Debian, Fedora und andere Distributionen verwende die jeweils passende Installationsanleitung.
Installation überprüfen
Öffne nach dem Start von Docker ein neues Terminal und prüfe Client, Engine und Compose:
docker version
docker compose version
docker info
docker run --rm hello-world
docker version sollte sowohl einen Client als auch einen Server anzeigen. hello-world lädt ein kleines Test-Image, startet einen Container und beendet ihn wieder. Wenn nur eine Client-Version erscheint, läuft die Docker Engine möglicherweise noch nicht oder dein Terminal verwendet den falschen Docker-Kontext. Den aktiven Kontext siehst du mit docker context ls.
Docker Compose: ein Dienst als Datei
Docker Compose beschreibt Container in einer YAML-Datei. Der aktuelle Aufruf lautet docker compose mit Leerzeichen. Das alte eigenständige Programm docker-compose gehört zur früheren Compose-Generation. Die Datei benötigt auch keine Zeile wie version: '3' mehr.
Lege in einem neuen Projektordner eine Datei namens compose.yaml an:
services:
web:
image: nginx:stable-alpine
ports:
- "127.0.0.1:8080:80"
restart: unless-stopped
Prüfe die Datei und starte anschließend den Webserver:
docker compose config -q
docker compose up -d
docker compose ps
docker compose logs --tail=20 web
Rufe nun http://127.0.0.1:8080 im Browser auf. Die Nginx-Startseite bestätigt, dass der Container läuft und die Portweiterleitung funktioniert. Unter Windows kannst du zusätzlich in PowerShell prüfen:
(Invoke-WebRequest -Uri 'http://127.0.0.1:8080').StatusCode
Bei einer erfolgreichen HTTP-Anfrage lautet der Statuscode 200. Mit docker compose down beendest und entfernst du anschließend den Testcontainer.
Ports, Volumes und dauerhafte Daten
Die Portangabe 127.0.0.1:8080:80 bindet den Testdienst nur an den lokalen Rechner. Ohne die Angabe 127.0.0.1 kann ein veröffentlichter Port auch über andere Netzwerkschnittstellen erreichbar sein. Prüfe Portfreigaben deshalb immer bewusst.
Daten, die einen neu erstellten Container überleben sollen, gehören in ein Volume oder ein gezielt eingebundenes Host-Verzeichnis. Das betrifft beispielsweise Datenbanken und hochgeladene Dateien. Welcher Pfad im Container eingebunden werden muss, steht in der Dokumentation des jeweiligen Images. Ein Volume ist allerdings noch kein Backup: Es liegt weiterhin auf dem Docker-Host und muss gesondert gesichert werden.
Der gelegentlich genannte Befehl docker commit eignet sich nicht als Sicherung einer Anwendung. Er erstellt ein Image aus Änderungen am Container-Dateisystem, enthält aber keine Daten aus eingebundenen Volumes.
Rechte und Sicherheit
Wer Docker-Container verwalten darf, erhält weitreichenden Zugriff auf den Host. Unter Linux verleiht die Mitgliedschaft in der Gruppe docker praktisch Root-Rechte über den Docker-Daemon. Füge daher nicht vorsorglich alle Benutzer dieser Gruppe hinzu. Für einzelne Verwaltungsbefehle kannst du sudo verwenden; für besondere Anforderungen gibt es außerdem den Rootless-Modus.
Unter Windows empfiehlt Docker Desktop inzwischen für viele Arbeitsplätze eine Installation für den aktuellen Benutzer. Die Gruppe docker-users ist beim normalen WSL-2-Betrieb mit Linux-Containern nicht pauschal erforderlich. Bei einer Installation für alle Benutzer oder beim Betrieb von Windows-Containern können zusätzliche Rechte nötig sein.
- Verwende Images aus vertrauenswürdigen Quellen und aktualisiere sie regelmäßig. Für reproduzierbare produktive Umgebungen solltest du eine konkrete Image-Version oder einen Digest festlegen.
- Veröffentliche nur Ports, die tatsächlich benötigt werden. Binde rein lokale Testdienste an
127.0.0.1. - Schreibe Passwörter nicht direkt in eine versionierte
compose.yaml. Prüfe für sensible Werte geeignete Secret- oder externe Geheimnisverwaltung. - Vermeide unnötige privilegierte Container und binde den Docker-Socket nicht ohne zwingenden Grund in Container ein.
- Sichere wichtige Volumes und teste die Wiederherstellung. Aktualisiere neben Docker auch das Host-Betriebssystem und die Anwendungen in den Containern.
Updates sauber einplanen
Docker Desktop wird über seine Update-Funktion aktualisiert. Unter Linux aktualisierst du die Docker-Pakete über das Paketrepository deiner Distribution beziehungsweise das eingerichtete Docker-Repository. Das aktualisiert jedoch nicht automatisch die Anwendungen in bereits gestarteten Containern.
Für ein Compose-Projekt kannst du neue Images abrufen und die betroffenen Container anschließend neu erstellen:
docker compose pull
docker compose up -d
Prüfe vorher die Versionshinweise der verwendeten Anwendung und erstelle bei zustandsbehafteten Diensten ein Backup. Kontrolliere danach mit docker compose ps, den Logs und einem Anwendungstest, ob der Dienst wieder wie erwartet arbeitet.
Wie geht es nach der Docker-Installation weiter?
Wenn docker version und docker compose version funktionieren, kannst du Docker an einem konkreten Projekt ausprobieren. Je nach Ziel bieten sich zwei Wege an:
- Container im Browser verwalten: Die Dockhand-Anleitung zeigt Installation, Zugriffsschutz und Verwaltung auf einem Linux-Host.
- Eine Datenbank betreiben: Die SQL-Server-in-Docker-Anleitung führt durch ein Compose-Projekt unter Docker Desktop für Windows – mit Daten-Volume, Windows-Verzeichnis und Healthcheck.
Beide Projekte sind unabhängig voneinander. Beginne mit dem Beispiel, das zu deinem Betriebssystem und deinem Vorhaben passt.
Fazit
Eine erfolgreiche Installation zeigt sich nicht allein an docker --version. Erst wenn die Engine antwortet, ein Testcontainer läuft und ein Compose-Dienst erreichbar ist, funktioniert die gesamte Kette. Danach sind bewusst gesetzte Rechte, begrenzte Portfreigaben, Backups und regelmäßige Updates die wichtigsten Grundlagen für den weiteren Betrieb.