guide docker deployment security

OpenClaw in Docker betreiben: Eine Schritt-für-Schritt-Deployment-Anleitung

OpenClaws.io Team

OpenClaws.io Team

@openclaws

March 6, 2026

6 Min. Lesezeit

OpenClaw in Docker betreiben: Eine Schritt-für-Schritt-Deployment-Anleitung

Warum Docker?

Das Ausführen von OpenClaw in Docker bietet drei wesentliche Vorteile gegenüber einer Bare-Metal-Installation:

  1. 1.Sicherheitsisolierung: Der Agent läuft innerhalb eines Containers mit eingeschränktem Zugriff auf Ihr Hostsystem. Wenn ein bösartiger Skill oder eine Prompt-Injection versucht, auf Ihre Dateien zuzugreifen, begrenzt die Container-Grenze den Schadensradius.
  2. 2.Reproduzierbarkeit: Dasselbe Docker-Image läuft identisch auf jedem Rechner — Ihrem Laptop, einem VPS oder einem Raspberry Pi.
  3. 3.Einfache Bereinigung: Sie möchten neu anfangen? Entfernen Sie den Container und starten Sie einen neuen. Keine übrig gebliebenen Dateien, keine defekten Node.js-Installationen.

Voraussetzungen

  • Docker Desktop (macOS/Windows) oder Docker Engine (Linux)
  • Docker Compose v2 (in Docker Desktop enthalten)
  • Mindestens 2 GB RAM verfügbar für den Container
  • Ein KI-API-Schlüssel (Anthropic, OpenAI oder ein anderer unterstützter Anbieter)

Schnellstart

Option A: Offizielles Docker Compose (Empfohlen)

Klonen Sie das OpenClaw-Repository und verwenden Sie das integrierte Docker-Setup:

bash
git clone https://github.com/openclaw/openclaw.git
cd openclaw

Führen Sie das Setup-Skript aus, das die erforderlichen Verzeichnisse und Konfigurationen erstellt:

bash
bash docker-setup.sh
  • ~/.openclaw/ — Konfiguration, SOUL.md, API-Schlüssel
  • ~/openclaw/workspace/ — Dateien, auf die der Agent zugreifen kann

Führen Sie den Onboarding-Assistenten innerhalb des Containers aus:

bash
docker compose run --rm openclaw-cli onboard

Folgen Sie den Eingabeaufforderungen, um Ihren API-Schlüssel einzurichten und eine Chat-Plattform zu verbinden. Starten Sie dann das Gateway:

bash
docker compose up -d openclaw-gateway

Ihr Agent läuft jetzt im Hintergrund.

Option B: Vorgefertigtes Image

Wenn Sie das Repository nicht klonen möchten, verwenden Sie das offizielle vorgefertigte Image:

bash
docker run -d \
  --name openclaw \
  --restart unless-stopped \
  -v ~/.openclaw:/root/.openclaw \
  -v ~/openclaw/workspace:/root/workspace \
  -p 3000:3000 \
  ghcr.io/openclaw/openclaw:latest

Docker Compose Referenz

Hier ist eine kommentierte docker-compose.yml für den Produktionseinsatz:

yaml
version: "3.8"
services:
  openclaw-gateway:
    image: ghcr.io/openclaw/openclaw:latest
    container_name: openclaw
    restart: unless-stopped
    ports:
      - "3000:3000"        # Web UI
    volumes:
      - ~/.openclaw:/root/.openclaw          # Config and data
      - ~/openclaw/workspace:/root/workspace  # Agent workspace
    environment:
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
      - OPENAI_API_KEY=${OPENAI_API_KEY}
      - TZ=Asia/Shanghai     # Set your timezone
    mem_limit: 2g            # Prevent runaway memory usage
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

Erstellen Sie eine .env-Datei im selben Verzeichnis mit Ihren API-Schlüsseln:

bash
ANTHROPIC_API_KEY=sk-ant-xxxxx
OPENAI_API_KEY=sk-xxxxx

Umgebungsvariablen

VariableErforderlichBeschreibung
ANTHROPIC_API_KEYJa*Claude API-Schlüssel
OPENAI_API_KEYNeinGPT API-Schlüssel (bei Verwendung von OpenAI)
OPENCLAW_PORTNeinWeb-UI-Port (Standard: 3000)
OPENCLAW_HOMENeinDatenverzeichnis innerhalb des Containers
TZNeinZeitzone für geplante Aufgaben

*Mindestens ein KI-Anbieter-Schlüssel ist erforderlich.

Ihren Container verwalten

bash
# Logs anzeigen
docker logs -f openclaw

# Den Agenten stoppen
docker compose stop

# Den Agenten starten
docker compose up -d

# Nach Konfigurationsänderungen neu starten
docker compose restart

# Auf die neueste Version aktualisieren
docker compose pull
docker compose up -d

# In die Container-Shell eintreten
docker exec -it openclaw bash

# CLI-Befehle innerhalb des Containers ausführen
docker exec openclaw openclaw skill list
docker exec openclaw openclaw status

Sicherheitshärtung

Dateisystemzugriff einschränken

Mounten Sie nur die Verzeichnisse, die Ihr Agent tatsächlich benötigt. Vermeiden Sie es, Ihr gesamtes Home-Verzeichnis zu mounten:

yaml
volumes:
  - ~/.openclaw:/root/.openclaw:rw     # Config (read-write)
  - ~/documents:/root/docs:ro           # Documents (read-only)

Netzwerkisolierung

Wenn Ihr Agent keinen Zugriff auf lokale Netzwerkdienste benötigt, schränken Sie sein Netzwerk ein:

yaml
networks:
  openclaw-net:
    driver: bridge
    internal: false    # Set to true to block all external access

Schreibgeschütztes Root-Dateisystem

Für maximale Sicherheit machen Sie das Root-Dateisystem schreibgeschützt und erlauben Schreibzugriff nur auf bestimmte Pfade:

yaml
read_only: true
tmpfs:
  - /tmp
  - /run

Aktualisierungen

OpenClaw veröffentlicht häufig Updates. Um Ihr Docker-Deployment zu aktualisieren:

bash
docker compose pull           # Neuestes Image herunterladen
docker compose up -d          # Container mit neuem Image neu erstellen
docker image prune -f         # Alte Images bereinigen

Ihre Konfiguration und Daten bleiben in den gemounteten Volumes erhalten, sodass Updates nicht destruktiv sind.

Fehlerbehebung

Container stürzt sofort ab: Überprüfen Sie die Logs mit docker logs openclaw. Häufige Ursachen: fehlende API-Schlüssel, unzureichender Speicher oder Port-Konflikte.

WhatsApp QR-Code wird nicht angezeigt: Führen Sie das Onboarding im interaktiven Modus aus: docker compose run --rm openclaw-cli onboard. Der QR-Code benötigt ein Terminal, das Rendering unterstützt.

Berechtigungsfehler bei gemounteten Volumes: Stellen Sie sicher, dass die Host-Verzeichnisse existieren und Ihrem Benutzer gehören: mkdir -p ~/.openclaw ~/openclaw/workspace.

Hoher Speicherverbrauch: Setzen Sie mem_limit: 2g in der docker-compose.yml, um zu verhindern, dass der Container übermäßig viel RAM verbraucht.

Für weitere Details siehe die offizielle Docker-Dokumentation und die docker-compose.yml im Repository.

Auf dem Laufenden bleiben

Erhalte Updates zu neuen Funktionen und Integrationen. Kein Spam, jederzeit abbestellbar.