Was ist Docker?

Docker verpackt Anwendungen zusammen mit ihren Abhängigkeiten in Container. Ein Container nutzt den Kernel des Hosts, läuft aber isoliert mit eigenem Dateisystem, eigenen Umgebungsvariablen und klar definierten Ports.

Container, Image und Volume

  • Image: Vorlage, aus der Container gestartet werden.
  • Container: laufende Instanz eines Images.
  • Volume: dauerhafte Datenablage außerhalb des Containers.
  • Netzwerk: Verbindung zwischen Containern und Host.

Einzelnen Container starten

Code
docker run -d \
  --name nginx-demo \
  --restart unless-stopped \
  -p 8080:80 \
  nginx:latest

Der Container läuft danach auf Port 8080 des Hosts. Für produktive Dienste ist Docker Compose übersichtlicher, weil die gesamte Konfiguration in einer Datei liegt.

Vollständiger Compose-Stack

YAML-Hilfe

Vor dem Einsetzen kurz prüfen

  • Ersetze Entity-IDs, Pfade und Namen durch deine eigenen Werte.
  • Prüfe, ob die genannte Card, Integration oder Erweiterung wirklich installiert ist.
  • Teste die Änderung zuerst in einem kleinen Bereich, bevor du das ganze Dashboard umbaust.
YAML
services:
  nginx:
    image: nginx:latest
    container_name: nginx-demo
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html:ro

  whoami:
    image: traefik/whoami:latest
    container_name: whoami
    restart: unless-stopped
    ports:
      - "8081:80"

Wichtige Befehle im Alltag

Code
docker compose up -d          # Stack starten
docker compose pull           # neue Images laden
docker compose logs -f        # Logs verfolgen
docker compose ps             # Status anzeigen
docker compose down           # Stack stoppen
docker system df              # Speicherverbrauch anzeigen
docker image prune            # ungenutzte Images löschen

Updates sauber durchführen

  1. Compose-Datei und Daten sichern.
  2. docker compose pull ausführen.
  3. docker compose up -d starten.
  4. Logs prüfen.
  5. Alte Images erst löschen, wenn der Dienst funktioniert.

Typische Fehler

  • Keine Volumes: Daten verschwinden beim Container-Neustart.
  • Zu breite Portfreigaben: Dienste sind im Netzwerk erreichbar, obwohl sie intern bleiben sollten.
  • latest blind nutzen: Für kritische Dienste besser feste Versionen pinnen.
  • Keine Backups: Compose-Dateien allein sichern nicht automatisch Datenbanken oder Uploads.

Für eine schnelle Befehlsübersicht siehe Docker Kommandos. Für die Grundinstallation auf Ubuntu siehe Ubuntu Docker Installation.