Zum Inhalt springen
>_<
AI EngineeringWiki

Tools

Docker Grundlagen: Container, Compose & Swarm

Warum Container die Basis jeder lokalen AI-Infrastruktur sind, wie Docker Compose funktioniert und wann du Docker Swarm brauchst.

Lesezeit: 14 minZuletzt aktualisiert: März 2026
📋 Auf einen Blick

Docker packt Software in Container — isolierte Einheiten, die überall gleich laufen. Für einen lokalen AI-Stack ist Docker die Grundlage: Ollama, Open WebUI, n8n, Grafana — alles läuft in Containern. Docker Compose orchestriert mehrere Container auf einem Rechner, Docker Swarm verteilt sie auf mehrere.

Was ist Docker?

Docker ist eine Plattform, die Software in Container verpackt. Ein Container enthält alles was die Software braucht — Code, Laufzeit-Umgebung, System-Bibliotheken, Konfiguration. Du installierst nicht mehr "Programm X auf Betriebssystem Y" sondern startest einen Container, der alles mitbringt.

Das löst das klassische Problem "bei mir funktioniert es aber": Container laufen auf deinem Laptop genauso wie auf einem Server.

Container vs. Virtuelle Maschinen

Container und VMs lösen ähnliche Probleme, aber auf verschiedenen Ebenen. Container sind leichtgewichtiger, VMs sind stärker isoliert.

Docker Architektur: Container vs VMs

Docker Container teilen sich den Host-Kernel, VMs haben jeweils ein eigenes Betriebssystem.

EigenschaftContainer (Docker)Virtuelle Maschine
StartzeitSekundenMinuten
GrößeMBs (Image)GBs (volles OS)
IsolationProzess-Level (Kernel geteilt)Hardware-Level (eigener Kernel)
PerformanceNahezu nativOverhead durch Hypervisor
GPU-ZugriffNVIDIA Container ToolkitGPU-Passthrough (IOMMU/PCIe)
AnwendungsfallServices, Microservices, AI-StacksKomplette OS-Isolation, Windows auf Linux
💡 Wann was?

Für AI-Workloads: Docker Container für alles was schnell starten und leichtgewichtig sein soll (Ollama, n8n, Grafana). VMs für Hardware-Isolation (GPU Passthrough an eine dedizierte AI-VM) oder wenn du mehrere Betriebssysteme brauchst. In der Praxis: beides kombinieren — VMs für die Hosts, Container für die Services.

Docker Compose: Mehrere Container als Stack

Docker Compose definiert Multi-Container-Anwendungen in einer einzigen YAML-Datei. Statt 5 separate docker run Befehle zu tippen, schreibst du eine docker-compose.yml und startest alles mit einem Befehl.

Beispiel: Minimaler AI-Stack

# docker-compose.yml
services:
  ollama:
    image: ollama/ollama
    ports:
      - "11434:11434"
    volumes:
      - ollama-data:/root/.ollama
    deploy:
      resources:
        reservations:
          devices:
            - capabilities: [gpu]

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    ports:
      - "3000:8080"
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    depends_on:
      - ollama

volumes:
  ollama-data:

Starten und Stoppen

# Stack starten (im Hintergrund)
docker compose up -d

# Status prüfen
docker compose ps

# Logs ansehen
docker compose logs -f ollama

# Stack stoppen
docker compose down

# Stack stoppen UND Volumes löschen (ACHTUNG: Daten weg!)
docker compose down -v
⚠️ Volumes sind deine Daten

docker compose down -v löscht ALLE Volumes — also alle gespeicherten Modelle, Datenbanken, Konfigurationen. Ohne -v bleiben die Daten erhalten und der nächste docker compose up nutzt sie weiter.

Docker Swarm: Container über mehrere Rechner

Docker Swarm macht aus mehreren Rechnern einen Cluster. Services laufen auf dem Node, der gerade Kapazität hat. Fällt ein Node aus, werden die Container automatisch auf andere Nodes verschoben.

EigenschaftDocker ComposeDocker Swarm
Hosts1 RechnerMehrere Rechner (Cluster)
High AvailabilityNeinJa (Auto-Failover)
Rolling UpdatesNeinJa (Zero-Downtime)
Load BalancingNein (manuell)Ja (Ingress Mesh)
Secrets ManagementUmgebungsvariablenDocker Secrets (verschlüsselt)
KomplexitätNiedrigMittel
EmpfehlungEntwicklung, kleine SetupsProduktion, mehrere Rechner
ℹ️ Compose oder Swarm?

Starte mit Docker Compose. Wenn du nur einen Rechner hast, reicht das völlig. Docker Swarm brauchst du erst wenn du mehrere Rechner hast und Services ausfallsicher betreiben willst. Die Compose-Dateien lassen sich mit kleinen Anpassungen als Swarm Stacks deployen.

GPU-Zugriff in Docker

Für AI-Workloads brauchen Container GPU-Zugriff. Das NVIDIA Container Toolkit macht GPUs in Docker verfügbar.

1

NVIDIA Treiber installieren

Auf dem Host-System müssen die NVIDIA-Treiber installiert sein. In Ubuntu: sudo apt install nvidia-driver-550

2

NVIDIA Container Toolkit

# Installation (Ubuntu/Debian)
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
  | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
3

Testen

docker run --rm --gpus all nvidia/cuda:12.6.0-base-ubuntu24.04 nvidia-smi
⚠️ GPU in Swarm

Docker Swarm hat KEINE native GPU-Unterstützung für --gpus. Workaround: Node Labels setzen (z.B. gpu=rtx3090) und Services per placement constraints auf GPU-Nodes pinnen. Zusätzlich das NVIDIA Runtime als Default in /etc/docker/daemon.json setzen.

Praxis-Tipps für den Alltag

SituationBefehlWas es tut
Container läuft nichtdocker compose logs service-nameZeigt Fehlermeldungen des Containers
Disk volldocker system prune -aLöscht ungenutzte Images, Container, Netzwerke
Neustart nach Updatedocker compose pull && docker compose up -dZieht neue Images und startet Container neu
In Container schauendocker exec -it container-name bashÖffnet Shell im laufenden Container
Ressourcen prüfendocker statsZeigt CPU, RAM, Netzwerk pro Container
💡 Logging begrenzen

Docker-Container können extrem grosse Logfiles erzeugen. Setze in der docker-compose.yml pro Service ein Log-Limit: logging: options: max-size: "50m". Ohne dieses Limit haben wir in der Praxis schon 55 GB Logfiles gesehen.

Das Wichtigste

  • Container sind leichtgewichtiger als VMs — Sekunden statt Minuten zum Starten, MBs statt GBs.
  • Docker Compose definiert Multi-Container-Stacks in einer YAML-Datei. Ein Befehl startet alles.
  • Docker Swarm verteilt Container auf mehrere Rechner mit Auto-Failover. Brauchst du erst ab 2+ Nodes.
  • GPU in Docker braucht das NVIDIA Container Toolkit. In Swarm: Node Labels + Placement Constraints.
  • Volumes sind deine Daten. docker compose down -v löscht ALLES. Ohne -v bleiben Daten erhalten.

Quellen

War dieser Artikel hilfreich?

Nächster Schritt: Workflows sauber in Betrieb bringen

Nutze bewährte n8n-Patterns, Templates und Integrationen für Workflows, die lokal, dokumentiert und auditierbar bleiben.

Warum AI Engineering
  • Lokal und self-hosted gedacht
  • Dokumentiert und auditierbar
  • Aus eigener Runtime entwickelt
  • Made in Austria
Kein Ersatz für Rechtsberatung.