Docker ist optional. Verwenden Sie es nur, wenn Sie einen containerisierten Gateway möchten oder den Docker-Ablauf validieren wollen.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Ist Docker das Richtige für mich?
- Ja: Sie möchten eine isolierte, temporäre Gateway-Umgebung oder OpenClaw auf einem Host ohne lokale Installationen ausführen.
- Nein: Sie arbeiten auf Ihrem eigenen Rechner und möchten nur den schnellsten Entwicklungszyklus. Verwenden Sie stattdessen den normalen Installationsablauf.
- Sandboxing-Hinweis: Das Standard-Sandbox-Backend verwendet Docker, wenn Sandboxing aktiviert ist, aber Sandboxing ist standardmäßig deaktiviert und erfordert nicht, dass der vollständige Gateway in Docker ausgeführt wird. SSH- und OpenShell-Sandbox-Backends sind ebenfalls verfügbar. Siehe Sandboxing.
Voraussetzungen
- Docker Desktop (oder Docker Engine) + Docker Compose v2
- Mindestens 2 GB RAM für den Image-Build (
pnpm installkann auf Hosts mit 1 GB mit Exit 137 wegen Speichermangel beendet werden) - Ausreichend Speicherplatz für Images und Protokolle
- Wenn Sie auf einem VPS/öffentlichen Host ausführen, lesen Sie
Sicherheitshärtung für Netzwerkexposition,
insbesondere die Docker-Firewallrichtlinie
DOCKER-USER.
Containerisierter Gateway
Image bauen
main, latest, <version> (z. B. 2026.2.26).Onboarding abschließen
- nach Provider-API-Schlüsseln fragen
- ein Gateway-Token generieren und in
.envschreiben - das Verzeichnis für den Secret Key des Auth-Profils erstellen
- den Gateway über Docker Compose starten
openclaw-gateway. openclaw-cli ist für Befehle vorgesehen, die Sie ausführen, nachdem
der Gateway-Container bereits existiert.Steuerungsoberfläche öffnen
http://127.0.0.1:18789/ in Ihrem Browser und fügen Sie das konfigurierte
gemeinsame Secret in den Einstellungen ein. Das Einrichtungsskript schreibt standardmäßig ein Token in .env;
wenn Sie die Container-Konfiguration auf Passwortauthentifizierung umstellen, verwenden Sie stattdessen dieses
Passwort.Benötigen Sie die URL erneut?Manueller Ablauf
Wenn Sie jeden Schritt lieber selbst ausführen möchten, statt das Einrichtungsskript zu verwenden:docker compose vom Repo-Root aus. Wenn Sie OPENCLAW_EXTRA_MOUNTS
oder OPENCLAW_HOME_VOLUME aktiviert haben, schreibt das Einrichtungsskript docker-compose.extra.yml;
binden Sie es mit -f docker-compose.yml -f docker-compose.extra.yml ein.openclaw-cli den Netzwerk-Namespace von openclaw-gateway teilt, ist es ein
Werkzeug nach dem Start. Führen Sie vor docker compose up -d openclaw-gateway Onboarding
und Konfigurationsschreibvorgänge zur Einrichtungszeit über openclaw-gateway mit
--no-deps --entrypoint node aus.Umgebungsvariablen
Das Einrichtungsskript akzeptiert diese optionalen Umgebungsvariablen:| Variable | Zweck |
|---|---|
OPENCLAW_IMAGE | Remote-Image verwenden, statt lokal zu bauen |
OPENCLAW_DOCKER_APT_PACKAGES | Zusätzliche apt-Pakete während des Builds installieren (durch Leerzeichen getrennt) |
OPENCLAW_EXTENSIONS | Ausgewählte gebündelte Plugin-Helfer zur Build-Zeit einschließen |
OPENCLAW_EXTRA_MOUNTS | Zusätzliche Host-Bind-Mounts (durch Kommas getrenntes source:target[:opts]) |
OPENCLAW_HOME_VOLUME | /home/node in einem benannten Docker-Volume persistieren |
OPENCLAW_SANDBOX | Sandbox-Bootstrap aktivieren (1, true, yes, on) |
OPENCLAW_SKIP_ONBOARDING | Interaktiven Onboarding-Schritt überspringen (1, true, yes, on) |
OPENCLAW_DOCKER_SOCKET | Docker-Socket-Pfad überschreiben |
OPENCLAW_DISABLE_BONJOUR | Bonjour-/mDNS-Ankündigung deaktivieren (standardmäßig 1 für Docker) |
OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS | Bind-Mount-Overlays für gebündelte Plugin-Quellen deaktivieren |
OTEL_EXPORTER_OTLP_ENDPOINT | Gemeinsamer OTLP-/HTTP-Collector-Endpunkt für OpenTelemetry-Export |
OTEL_EXPORTER_OTLP_*_ENDPOINT | Signalspezifische OTLP-Endpunkte für Traces, Metriken oder Protokolle |
OTEL_EXPORTER_OTLP_PROTOCOL | OTLP-Protokollüberschreibung. Derzeit wird nur http/protobuf unterstützt |
OTEL_SERVICE_NAME | Für OpenTelemetry-Ressourcen verwendeter Dienstname |
OTEL_SEMCONV_STABILITY_OPT_IN | Neueste experimentelle semantische GenAI-Attribute aktivieren |
OPENCLAW_OTEL_PRELOADED | Start eines zweiten OpenTelemetry-SDK überspringen, wenn bereits eines vorgeladen ist |
OPENCLAW_EXTRA_MOUNTS=/path/to/fork/extensions/synology-chat:/app/extensions/synology-chat:ro.
Dieses gemountete Quellverzeichnis überschreibt das passende kompilierte
/app/dist/extensions/synology-chat-Bundle für dieselbe Plugin-ID.
Observability
Der OpenTelemetry-Export erfolgt ausgehend vom Gateway-Container zu Ihrem OTLP- Collector. Er erfordert keinen veröffentlichten Docker-Port. Wenn Sie das Image lokal bauen und den gebündelten OpenTelemetry-Exporter im Image verfügbar haben möchten, schließen Sie dessen Runtime-Abhängigkeiten ein:@openclaw/diagnostics-otel-Plugin aus ClawHub in
paketierten Docker-Installationen, bevor Sie den Export aktivieren. Benutzerdefinierte, aus Quellcode gebaute Images können
die lokale Plugin-Quelle weiterhin mit
OPENCLAW_EXTENSIONS=diagnostics-otel einschließen. Um den Export zu aktivieren, erlauben und aktivieren Sie das
diagnostics-otel-Plugin in der Konfiguration, setzen Sie dann
diagnostics.otel.enabled=true oder verwenden Sie das Konfigurationsbeispiel unter OpenTelemetry-
Export. Collector-Auth-Header werden über
diagnostics.otel.headers konfiguriert, nicht über Docker-Umgebungsvariablen.
Prometheus-Metriken verwenden den bereits veröffentlichten Gateway-Port. Installieren Sie
clawhub:@openclaw/diagnostics-prometheus, aktivieren Sie das
diagnostics-prometheus-Plugin und scrapen Sie dann:
/metrics-Port und keinen nicht authentifizierten Reverse-Proxy-Pfad offen. Siehe
Prometheus-Metriken.
Health Checks
Container-Probe-Endpunkte (keine Authentifizierung erforderlich):HEALTHCHECK, der /healthz anpingt.
Wenn Prüfungen weiterhin fehlschlagen, markiert Docker den Container als unhealthy, und
Orchestrierungssysteme können ihn neu starten oder ersetzen.
Authentifizierter Deep-Health-Snapshot:
LAN vs. Loopback
scripts/docker/setup.sh setzt standardmäßig OPENCLAW_GATEWAY_BIND=lan, damit der Host-Zugriff auf
http://127.0.0.1:18789 mit Docker-Portveröffentlichung funktioniert.
lan(Standard): Host-Browser und Host-CLI können den veröffentlichten Gateway-Port erreichen.loopback: Nur Prozesse innerhalb des Container-Netzwerk-Namespace können den Gateway direkt erreichen.
gateway.bind (lan / loopback / custom /
tailnet / auto), nicht Host-Aliasse wie 0.0.0.0 oder 127.0.0.1.Lokale Host-Provider
Wenn OpenClaw in Docker ausgeführt wird, ist127.0.0.1 innerhalb des Containers der Container
selbst, nicht Ihre Host-Maschine. Verwenden Sie host.docker.internal für AI-Provider, die
auf dem Host laufen:
| Provider | Standard-Host-URL | Docker-Einrichtungs-URL |
|---|---|---|
| LM Studio | http://127.0.0.1:1234 | http://host.docker.internal:1234 |
| Ollama | http://127.0.0.1:11434 | http://host.docker.internal:11434 |
docker-compose.yml ordnet host.docker.internal dem
Host-Gateway von Docker für Linux Docker Engine zu. Docker Desktop stellt denselben Hostnamen
unter macOS und Windows bereits bereit.
Host-Dienste müssen außerdem auf einer Adresse lauschen, die von Docker erreichbar ist:
docker run-Befehl verwenden, fügen Sie dieselbe Host-
Zuordnung selbst hinzu, zum Beispiel
--add-host=host.docker.internal:host-gateway.
Bonjour / mDNS
Docker-Bridge-Netzwerke leiten Bonjour-/mDNS-Multicast (224.0.0.251:5353) in der Regel nicht zuverlässig weiter. Die gebündelte Compose-Einrichtung setzt daher standardmäßig
OPENCLAW_DISABLE_BONJOUR=1, damit der Gateway nicht in eine Absturzschleife gerät oder wiederholt
die Ankündigung neu startet, wenn die Bridge Multicast-Datenverkehr verwirft.
Verwenden Sie die veröffentlichte Gateway-URL, Tailscale oder Wide-Area-DNS-SD für Docker-Hosts.
Setzen Sie OPENCLAW_DISABLE_BONJOUR=0 nur, wenn Sie mit Host-Netzwerk, macvlan
oder einem anderen Netzwerk arbeiten, bei dem bekannt ist, dass mDNS-Multicast funktioniert.
Hinweise zu Fallstricken und Fehlerbehebung finden Sie unter Bonjour-Erkennung.
Speicher und Persistenz
Docker Compose bind-mountetOPENCLAW_CONFIG_DIR nach /home/node/.openclaw,
OPENCLAW_WORKSPACE_DIR nach /home/node/.openclaw/workspace und
OPENCLAW_AUTH_PROFILE_SECRET_DIR nach /home/node/.config/openclaw, sodass diese
Pfade Container-Ersetzungen überdauern. Wenn eine Variable nicht gesetzt ist, fällt das gebündelte
docker-compose.yml auf ${HOME} zurück oder auf /tmp, wenn HOME selbst
ebenfalls fehlt. Dadurch verhindert docker compose up, dass in einfachen Umgebungen eine Volume-Spezifikation
mit leerer Quelle ausgegeben wird.
Dieses gemountete Konfigurationsverzeichnis ist der Ort, an dem OpenClaw Folgendes speichert:
openclaw.jsonfür Verhaltenskonfigurationagents/<agentId>/agent/auth-profiles.jsonfür gespeicherte Provider-OAuth-/API-Schlüssel-Authentifizierung.envfür env-gestützte Runtime-Secrets wieOPENCLAW_GATEWAY_TOKEN
OPENCLAW_CONFIG_DIR.
Installierte herunterladbare Plugins speichern ihren Paketstatus unter dem gemounteten
OpenClaw-Home, sodass Plugin-Installationsdatensätze und Paketwurzeln den Austausch
des Containers überstehen. Der Gateway-Start erzeugt keine Abhängigkeitsbäume für
gebündelte Plugins.
Vollständige Details zur Persistenz bei VM-Bereitstellungen finden Sie unter
Docker VM Runtime - Was wo bestehen bleibt.
Hotspots für Festplattenwachstum: Beobachten Sie media/, Sitzungs-JSONL-Dateien,
cron/runs/*.jsonl, installierte Plugin-Paketwurzeln und rotierende Dateilogs
unter /tmp/openclaw/.
Shell-Hilfen (optional)
Installieren SieClawDock für eine einfachere tägliche Docker-Verwaltung:
scripts/shell-helpers/clawdock-helpers.sh installiert haben, führen Sie den Installationsbefehl oben erneut aus, damit Ihre lokale Hilfsdatei dem neuen Speicherort folgt.
Verwenden Sie anschließend clawdock-start, clawdock-stop, clawdock-dashboard usw. Führen Sie
clawdock-help aus, um alle Befehle anzuzeigen.
Den vollständigen Leitfaden zu den Hilfen finden Sie unter ClawDock.
Agent-Sandbox für Docker-Gateway aktivieren
Agent-Sandbox für Docker-Gateway aktivieren
docker.sock erst, nachdem die Sandbox-Voraussetzungen erfüllt sind. Wenn
die Sandbox-Einrichtung nicht abgeschlossen werden kann, setzt das Skript agents.defaults.sandbox.mode
auf off zurück. Codex-Code-Modus-Turns bleiben weiterhin auf Codex
workspace-write beschränkt, während die OpenClaw-Sandbox aktiv ist; mounten Sie den
Host-Docker-Socket nicht in Agent-Sandbox-Container.Automatisierung / CI (nicht interaktiv)
Automatisierung / CI (nicht interaktiv)
-T:Sicherheitshinweis zum gemeinsamen Netzwerk
Sicherheitshinweis zum gemeinsamen Netzwerk
openclaw-cli verwendet network_mode: "service:openclaw-gateway", damit CLI-
Befehle das Gateway über 127.0.0.1 erreichen können. Behandeln Sie dies als gemeinsame
Vertrauensgrenze. Die Compose-Konfiguration entfernt NET_RAW/NET_ADMIN und aktiviert
no-new-privileges sowohl für openclaw-gateway als auch für openclaw-cli.Docker-Desktop-DNS-Fehler in openclaw-cli
Docker-Desktop-DNS-Fehler in openclaw-cli
openclaw-cli-Sidecar
im gemeinsamen Netzwerk fehl, nachdem NET_RAW entfernt wurde; dies zeigt sich als
EAI_AGAIN bei npm-gestützten Befehlen wie openclaw plugins install.
Behalten Sie die standardmäßig gehärtete Compose-Datei für den normalen Gateway-Betrieb bei. Die
lokale Überschreibung unten lockert die Sicherheitslage des CLI-Containers, indem sie
Dockers Standardfähigkeiten wiederherstellt. Verwenden Sie sie daher nur für den einmaligen CLI-
Befehl, der Zugriff auf die Paket-Registry benötigt, nicht als Ihren standardmäßigen Compose-
Aufruf:openclaw-cli-Container erstellt haben, erstellen Sie ihn
mit derselben Überschreibung neu. docker compose exec und docker exec können
Linux-Fähigkeiten an einem bereits erstellten Container nicht ändern.Berechtigungen und EACCES
Berechtigungen und EACCES
node (uid 1000). Wenn Berechtigungsfehler bei
/home/node/.openclaw auftreten, stellen Sie sicher, dass Ihre Host-Bind-Mounts uid 1000 gehören:blocked plugin candidate: suspicious ownership (... uid=1000, expected uid=0 or root)
gefolgt von plugin present but blocked. Das bedeutet, dass die Prozess-uid und der
Eigentümer des gemounteten Plugin-Verzeichnisses nicht übereinstimmen. Bevorzugen Sie, den Container mit der
Standard-uid 1000 auszuführen und die Eigentümerschaft des Bind-Mounts zu korrigieren. Ändern Sie
/path/to/openclaw-config/npm nur dann per chown zu root:root, wenn Sie OpenClaw
langfristig absichtlich als root ausführen.Schnellere Rebuilds
Schnellere Rebuilds
pnpm install erneut auszuführen, sofern sich Lockfiles nicht ändern:Container-Optionen für Power-User
Container-Optionen für Power-User
node. Für einen
funktionsreicheren Container:/home/nodepersistieren:export OPENCLAW_HOME_VOLUME="openclaw_home"- Systemabhängigkeiten einbacken:
export OPENCLAW_DOCKER_APT_PACKAGES="git curl jq" - Playwright Chromium einbacken:
export OPENCLAW_INSTALL_BROWSER=1 - Oder Playwright-Browser in ein persistiertes Volume installieren:
- Browser-Downloads persistieren: Verwenden Sie
OPENCLAW_HOME_VOLUMEoderOPENCLAW_EXTRA_MOUNTS. OpenClaw erkennt das von Playwright verwaltete Chromium des Docker-Images unter Linux automatisch.
OpenAI Codex OAuth (headless Docker)
OpenAI Codex OAuth (headless Docker)
Basis-Image-Metadaten
Basis-Image-Metadaten
node:24-bookworm-slim und enthält tini als Entry-Point-Init-Prozess (PID 1), um sicherzustellen, dass Zombie-Prozesse bereinigt und Signale in langlebigen Containern korrekt verarbeitet werden. Es veröffentlicht OCI-Basis-Image-Annotationen, darunter org.opencontainers.image.base.name,
org.opencontainers.image.source und weitere. Der Node-Basis-Digest wird
über Dependabot-Docker-Basis-Image-PRs aktualisiert; Release-Builds führen keine
Distributions-Upgrade-Schicht aus. Siehe
OCI-Image-Annotationen.Ausführung auf einem VPS?
Siehe Hetzner (Docker-VPS) und Docker VM Runtime für gemeinsame Schritte zur VM-Bereitstellung, einschließlich Binary-Baking, Persistenz und Updates.Agent-Sandbox
Wennagents.defaults.sandbox mit dem Docker-Backend aktiviert ist, führt das Gateway
die Ausführung von Agent-Tools (Shell, Datei-Lesen/-Schreiben usw.) innerhalb isolierter Docker-
Container aus, während das Gateway selbst auf dem Host bleibt. Dadurch erhalten Sie eine harte Grenze
um nicht vertrauenswürdige oder mandantenfähige Agent-Sitzungen, ohne das gesamte
Gateway zu containerisieren.
Der Sandbox-Umfang kann pro Agent (Standard), pro Sitzung oder gemeinsam sein. Jeder Umfang
erhält seinen eigenen Workspace, der unter /workspace gemountet ist. Sie können außerdem
Allow/Deny-Tool-Richtlinien, Netzwerkisolation, Ressourcenlimits und Browser-
Container konfigurieren.
Vollständige Konfiguration, Images, Sicherheitshinweise und Multi-Agent-Profile finden Sie unter:
- Sandboxing — vollständige Sandbox-Referenz
- OpenShell — interaktiver Shell-Zugriff auf Sandbox-Container
- Multi-Agent-Sandbox und Tools — Überschreibungen pro Agent
Schnell aktivieren
docker build-Befehle.
Fehlerbehebung
Image fehlt oder Sandbox-Container startet nicht
Image fehlt oder Sandbox-Container startet nicht
scripts/sandbox-setup.sh
(Source-Checkout) oder dem Inline-docker build-Befehl aus Sandboxing § Images und Einrichtung (npm-Installation),
oder setzen Sie agents.defaults.sandbox.docker.image auf Ihr benutzerdefiniertes Image.
Container werden bei Bedarf automatisch pro Sitzung erstellt.Berechtigungsfehler in der Sandbox
Berechtigungsfehler in der Sandbox
docker.user auf eine UID:GID, die zur Eigentümerschaft Ihres gemounteten Workspaces passt,
oder ändern Sie den Workspace-Ordner per chown.Benutzerdefinierte Tools werden in der Sandbox nicht gefunden
Benutzerdefinierte Tools werden in der Sandbox nicht gefunden
sh -lc (Login-Shell) aus, wodurch
/etc/profile geladen wird und PATH möglicherweise zurückgesetzt wird. Setzen Sie docker.env.PATH, um Ihre
benutzerdefinierten Tool-Pfade voranzustellen, oder fügen Sie in Ihrem Dockerfile ein Skript unter /etc/profile.d/ hinzu.Während des Image-Builds durch OOM beendet (Exit 137)
Während des Image-Builds durch OOM beendet (Exit 137)
Nicht autorisiert oder Pairing in der Control UI erforderlich
Nicht autorisiert oder Pairing in der Control UI erforderlich
Gateway-Ziel zeigt ws://172.x.x.x oder Pairing-Fehler von der Docker-CLI
Gateway-Ziel zeigt ws://172.x.x.x oder Pairing-Fehler von der Docker-CLI
Verwandte Themen
- Installationsübersicht — alle Installationsmethoden
- Podman — Podman-Alternative zu Docker
- ClawDock — Docker-Compose-Community-Setup
- Aktualisierung — OpenClaw aktuell halten
- Konfiguration — Gateway-Konfiguration nach der Installation