Installationsanleitungen

Docker installieren und der erste Container

Wir erklären die Installation von Docker Desktop und Docker Engine, das Starten des ersten Containers, das Schreiben eines Dockerfiles und den Aufbau einer Multi-Service-Umgebung mit Docker Compose.

Aurora YazılımRedaktionsteam 6 Min. Lesezeit
Docker installieren und der erste Container
Wie installiert man Docker?

Für die Docker-Installation laden Sie unter Windows und macOS den Installer von Docker Desktop von docker.com herunter; unter Windows muss zuvor WSL 2 aktiviert sein. Unter Linux wird Docker Engine aus dem offiziellen Repository installiert. Führen Sie danach den Befehl docker run hello-world aus; sehen Sie die Willkommensmeldung, läuft Docker. Für Projekte mit mehreren Services verwendet man Docker Compose.

Was ist Docker und wozu dient es?

Docker ist eine Plattform, die eine Anwendung samt allem, was sie braucht, verpackt und in abgeschotteten Umgebungen namens Container ausführt. Anwendung, Bibliotheken und Einstellungen sind in einem einzigen Image gebündelt; dieses Image verhält sich überall gleich, egal wo es läuft.

Praktisch heißt das: Das Problem »Bei mir lief es aber« verschwindet weitgehend. Der Laptop des Entwicklers, der Testserver und der Live-Server verwenden dasselbe Image. Und ein neues Teammitglied startet das Projekt mit einem einzigen Befehl, statt stundenlang einzurichten.

Container ähneln virtuellen Maschinen, sind aber deutlich schlanker. Jeder trägt kein eigenes Betriebssystem mit sich, sondern teilt sich den Kernel des Hostsystems; deshalb starten sie in Sekunden und verbrauchen wenig Ressourcen.

BegriffKurz erklärt
ImageSchreibgeschützte Vorlage der Anwendung; wird aus einem Dockerfile erzeugt
ContainerLaufende Instanz, die aus einem Image gestartet wird
DockerfileTextdatei, die beschreibt, wie das Image gebaut wird
VolumePersistenter Datenbereich, der auch nach dem Löschen des Containers erhalten bleibt
Docker HubÖffentliche Registry mit fertigen Images
Docker ComposeWerkzeug, das mehrere Container über eine einzige Datei verwaltet

Voraussetzungen vor der Installation

Docker Desktop startet im Hintergrund eine kleine virtuelle Umgebung; deshalb muss die Virtualisierung Ihres Rechners aktiviert sein. Auf den meisten neueren Rechnern ist sie standardmäßig an; falls nicht, aktivieren Sie in den BIOS/UEFI-Einstellungen die Option Intel VT-x oder AMD-V.

Unter Windows führt Docker Desktop Linux-Container auf WSL 2 aus. Ist WSL nicht installiert, richten Sie es zuerst ein; die Schritte beschreiben wir ausführlich in unserem Leitfaden WSL installieren.

  • Arbeitsspeicher: Sollen mehrere Container gleichzeitig laufen, sorgen mindestens 8 GB RAM für komfortables Arbeiten.
  • Speicherplatz: Images sammeln sich mit der Zeit an; planen Sie einige zehn GB freien Platz ein.
  • Lizenz: Docker Desktop ist für den persönlichen Gebrauch, für Bildung und für kleine Unternehmen unterhalb einer bestimmten Größe kostenlos; größere Organisationen benötigen ein kostenpflichtiges Abonnement. Die aktuellen Bedingungen prüfen Sie auf docker.com.
powershellWSL-2-Installation (PowerShell als Administrator)
wsl --install

# Starten Sie den Rechner nach der Installation neu und prüfen Sie dann
wsl --status

Docker Desktop unter Windows und macOS

Docker Desktop bündelt Docker Engine, das Kommandozeilenwerkzeug, Docker Compose und eine grafische Verwaltungsoberfläche in einem Paket. Laden Sie den Installer von der offiziellen Website herunter und installieren Sie ihn mit den Standardeinstellungen.

Achten Sie unter Windows bei der Installation darauf, dass die Option Use WSL 2 instead of Hyper-V angehakt ist. Unter macOS wählen Sie die zu Ihrem Prozessor passende Version: Apple Silicon (M-Serie) oder Intel. Starten Sie die App nach der Installation; sobald das Wal-Symbol in der Menüleiste oder Taskleiste stehen bleibt, ist Docker bereit.

powershellInstallation unter Windows mit winget
winget install -e --id Docker.DockerDesktop

Docker Engine unter Linux installieren

Unter Linux läuft Docker auch ohne Docker Desktop direkt als Docker Engine; das ist auch die Standardmethode für Server. Am zuverlässigsten folgen Sie der Repository-Installation für Ihre Distribution aus der offiziellen Dokumentation. Für Entwicklungsrechner erledigt das offizielle Convenience-Skript von Docker dasselbe in einem Schritt.

Fügen Sie Ihren Benutzer nach der Installation zur Gruppe docker hinzu, müssen Sie nicht jedem Befehl sudo voranstellen. Da diese Gruppe nahezu root-Rechte verleiht, nehmen Sie nur Benutzer auf, denen Sie vertrauen.

bashOffizielles Convenience-Skript (für die Entwicklungsumgebung)
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# Für die Nutzung ohne sudo
sudo usermod -aG docker $USER
newgrp docker

# Dienst beim Systemstart starten
sudo systemctl enable --now docker

Installation überprüfen

Unabhängig vom Betriebssystem sind die Prüfbefehle dieselben. Das Image hello-world wird von Docker Hub geladen, ausgeführt, gibt eine Erklärung aus und beendet sich. Sehen Sie diese Ausgabe, funktioniert die Kette aus Client, Engine und Image-Download einwandfrei.

bashPrüfbefehle
docker --version
docker compose version
docker run hello-world

Den ersten Container starten

Machen wir mit einem echten Beispiel weiter: Wir starten nginx, einen schlanken Webserver, als Container und öffnen ihn im Browser. Das Flag -d lässt den Container im Hintergrund laufen, -p 8080:80 verbindet Port 8080 Ihres Rechners mit Port 80 des Containers.

Öffnen Sie nach dem Befehl im Browser http://localhost:8080; Sie sollten die nginx-Willkommensseite sehen. Mit den weiteren Befehlen unten beobachten Sie den Container, öffnen eine Shell darin und räumen ihn auf.

bashnginx-Container
docker run -d -p 8080:80 --name web nginx

# Laufende Container
docker ps

# Logs verfolgen
docker logs web

# Shell im Container öffnen
docker exec -it web sh

# Durdur ve sil
docker stop web
docker rm web

# Heruntergeladene Images
docker images

Eigene Dateien ausliefern

Um HTML-Dateien aus einem Ordner in den Container einzubinden, nutzt man einen Bind Mount. Der folgende Befehl bindet Ihren aktuellen Ordner schreibgeschützt in das Webverzeichnis von nginx ein; bearbeiten Sie die Datei und laden die Seite neu, sehen Sie die Änderung sofort.

bash
docker run -d -p 8080:80 -v "$(pwd)":/usr/share/nginx/html:ro --name site nginx

Ein eigenes Image bauen

Um eine Node.js-Anwendung in ein Image zu verwandeln, legen Sie im Projektstamm eine Datei namens Dockerfile an. Wenn Sie zuerst die package-Dateien kopieren und die Abhängigkeiten installieren, muss diese Schicht bei Codeänderungen nicht neu gebaut werden, und der Build wird schneller.

dockerfileDockerfile
FROM node:lts-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
bashBuild und Start
docker build -t uygulamam .
docker run -d -p 3000:3000 uygulamam

Mehrere Services mit Docker Compose

Echte Projekte bestehen meist aus mehreren Teilen: einem Webserver, einer Datenbank, vielleicht einem Cache. Statt jeden einzeln mit eigenen docker-run-Befehlen zu starten, definieren Sie mit Docker Compose alles in einer einzigen Datei compose.yaml.

Das folgende Beispiel startet einen nginx-Webserver zusammen mit einer MariaDB-Datenbank. Da die Datenbankdateien in einem benannten Volume liegen, bleiben die Daten auch erhalten, wenn der Container gelöscht wird. Die in älteren Beispielen übliche version-Zeile ist nicht mehr nötig.

yamlcompose.yaml
services:
  web:
    image: nginx:alpine
    ports:
      - "8080:80"
    volumes:
      - ./site:/usr/share/nginx/html:ro
    depends_on:
      - db

  db:
    image: mariadb:lts
    environment:
      MARIADB_ROOT_PASSWORD: degistirin
      MARIADB_DATABASE: uygulama
    volumes:
      - db-veri:/var/lib/mysql

volumes:
  db-veri:
bashCompose-Befehle
docker compose up -d
docker compose ps
docker compose logs -f
docker compose down

# Volume'larla birlikte sil (veriler gider)
docker compose down -v

Häufige Fehler und Lösungen

Probleme bei der Docker-Installation betreffen meist Virtualisierung, Berechtigungen und Portkonflikte. Füllen Images und gestoppte Container mit der Zeit die Festplatte, räumt docker system prune ungenutzte Ressourcen auf; vor dem Löschen fragt der Befehl nach.

  • WSL-2-/Virtualisierungsfehler: Aktivieren Sie die Virtualisierung im BIOS, aktualisieren Sie WSL mit wsl --update und starten Sie den Rechner neu.
  • port is already allocated: Der gewählte Port wird von einer anderen Anwendung verwendet. Wählen Sie einen anderen Port wie -p 8081:80 oder beenden Sie die kollidierende Anwendung.
  • permission denied ... docker.sock: Unter Linux gehört Ihr Benutzer nicht zur Gruppe docker; melden Sie sich nach dem Befehl usermod ab und wieder an.
  • Cannot connect to the Docker daemon: Docker Desktop ist beendet oder der Dienst läuft unter Linux nicht; starten Sie ihn mit sudo systemctl start docker.
  • Warnung zur Image-Architektur auf dem Mac: Manche Images werden nur für x86 veröffentlicht. Wählen Sie nach Möglichkeit ein Tag mit ARM-Unterstützung.

Was bringt Docker für Webprojekte?

Docker sorgt dafür, dass Entwicklungs-, Test- und Live-Umgebung eines Webprojekts identisch sind. Betreiben Sie ein Projekt mit PHP und Datenbank in Containern statt in Ein-Rechner-Paketen wie bei der XAMPP-Installation, vermeiden Sie Überraschungen durch unterschiedliche Versionen. Wie Sie PHP-Abhängigkeiten im Container verwalten, lesen Sie in unserem Leitfaden zur Composer-Installation.

Reproduzierbare Umgebungen sorgen dafür, dass Verbesserungen bei Geschwindigkeit und Performance auch live dasselbe Ergebnis liefern. Für integrierte Lösungen, in denen mehrere Systeme zusammenarbeiten, und für eine wachsende Shopsystem-Infrastruktur ist diese Konsistenz besonders wichtig.

Weitere Inhalte rund um Container und Server finden Sie auf unserer Seite zum Docker-Tag.

Häufig gestellte Fragen

01Was ist der Unterschied zwischen Docker und einer virtuellen Maschine?

Eine virtuelle Maschine bringt ein eigenes Betriebssystem mit, belegt Gigabytes und startet in Minuten. Ein Container teilt sich dagegen den Kernel des Hostsystems, bleibt im Megabyte-Bereich und startet in Sekunden; dafür ist die Isolation nicht so stark wie bei einer virtuellen Maschine.

02Kann man Docker unter Windows ohne Docker Desktop nutzen?

Ja. Sie können Docker Engine direkt in einer Linux-Distribution unter WSL 2 installieren. Das schafft Spielraum bei der Lizenz, aber Sie verzichten auf Komfort wie die grafische Oberfläche und automatische Updates.

03Gehen meine Daten verloren, wenn ich einen Container lösche?

Daten, die in einen Container geschrieben werden, gehen mit dem Container verloren. Binden Sie Daten, die bestehen bleiben sollen, etwa Datenbankdateien, per Volume oder Bind Mount außerhalb des Containers ein; bedenken Sie, dass docker compose down -v auch die Volumes löscht.

04Wird Docker auf Live-Servern eingesetzt?

Ja, sehr viele Anwendungen laufen live als Container. Backup, Updates, Log-Überwachung und Sicherheitseinstellungen müssen für die Live-Umgebung allerdings gesondert geplant werden; eine 1:1-Kopie der Installation vom Entwicklungsrechner reicht nicht.

Haben Sie Docker installiert und den ersten Container gestartet, arbeiten Sie mit einer reproduzierbaren Umgebung, in der sich Ihre Projekte auf jedem Rechner gleich hochfahren lassen. Wünschen Sie sich für Ihr Unternehmen eine maßgeschneiderte, wartungsfreundliche Software, die nach diesem Prinzip entwickelt wird, lernen Sie die individuellen Softwarelösungen von Aurora Yazılım kennen oder nehmen Sie Kontakt mit uns auf.