Docker (optional)
Docker ist optional. Verwenden Sie es nur, wenn Sie ein containerisiertes Gateway möchten oder den Docker-Ablauf validieren wollen.Ist Docker das Richtige für mich?
- Ja: Sie möchten eine isolierte, wegwerfbare Gateway-Umgebung oder OpenClaw auf einem Host ohne lokale Installationen ausführen.
- Nein: Sie arbeiten auf Ihrer eigenen Maschine und möchten einfach den schnellsten Dev-Loop. Verwenden Sie stattdessen den normalen Installationsablauf.
- Hinweis zu Sandboxing: Agent-Sandboxing verwendet ebenfalls Docker, aber dafür muss nicht das gesamte Gateway in Docker laufen. 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 durch OOM beendet werden) - Genügend Speicherplatz für Images und Logs
- Wenn Sie auf einem VPS/öffentlichen Host arbeiten, lesen Sie
Security-Härtung für Netzwerkexponierung,
insbesondere die Docker-Firewall-Richtlinie
DOCKER-USER.
Containerisiertes Gateway
Das Image bauen
Führen Sie aus dem Repo-Root das Setup-Skript aus:Dadurch wird das Gateway-Image lokal gebaut. Wenn Sie stattdessen ein vorgefertigtes Image verwenden möchten:Vorgefertigte Images werden in der
GitHub Container Registry veröffentlicht.
Gängige Tags:
main, latest, <version> (z. B. 2026.2.26).Onboarding abschließen
Das Setup-Skript führt das Onboarding automatisch aus. Es wird:
- nach API-Schlüsseln für Provider fragen
- ein Gateway-Token erzeugen und in
.envschreiben - das Gateway über Docker Compose starten
openclaw-gateway. openclaw-cli ist für Befehle gedacht, die Sie ausführen, nachdem
der Gateway-Container bereits existiert.Die Control UI öffnen
Öffnen Sie
http://127.0.0.1:18789/ in Ihrem Browser und fügen Sie das konfigurierte
gemeinsame Secret in die Einstellungen ein. Das Setup-Skript schreibt standardmäßig ein Token in .env; wenn Sie die Container-Konfiguration auf Passwort-Auth umstellen, verwenden Sie stattdessen dieses
Passwort.Benötigen Sie die URL erneut?Manueller Ablauf
Wenn Sie lieber jeden Schritt selbst ausführen möchten, statt das Setup-Skript zu verwenden:Führen Sie
docker compose aus dem Repo-Root aus. Wenn Sie OPENCLAW_EXTRA_MOUNTS
oder OPENCLAW_HOME_VOLUME aktiviert haben, schreibt das Setup-Skript docker-compose.extra.yml;
binden Sie es mit -f docker-compose.yml -f docker-compose.extra.yml ein.Da
openclaw-cli den Netzwerk-Namespace von openclaw-gateway teilt, ist es ein
Tool für nach dem Start. Vor docker compose up -d openclaw-gateway führen Sie Onboarding
und Konfigurationsschreibvorgänge zur Setup-Zeit über openclaw-gateway mit
--no-deps --entrypoint node aus.Umgebungsvariablen
Das Setup-Skript akzeptiert diese optionalen Umgebungsvariablen:| Variable | Zweck |
|---|---|
OPENCLAW_IMAGE | Ein Remote-Image verwenden, statt lokal zu bauen |
OPENCLAW_DOCKER_APT_PACKAGES | Zusätzliche apt-Pakete beim Build installieren (durch Leerzeichen getrennt) |
OPENCLAW_EXTENSIONS | Erweiterungsabhängigkeiten beim Build vorinstallieren (Namen durch Leerzeichen getrennt) |
OPENCLAW_EXTRA_MOUNTS | Zusätzliche Host-Bind-Mounts (kommagetrennt source:target[:opts]) |
OPENCLAW_HOME_VOLUME | /home/node in einem benannten Docker-Volume persistieren |
OPENCLAW_SANDBOX | Für Sandbox-Bootstrap opt-in (1, true, yes, on) |
OPENCLAW_DOCKER_SOCKET | Docker-Socket-Pfad überschreiben |
Health-Checks
Container-Probe-Endpunkte (keine Auth erforderlich):HEALTHCHECK, der /healthz abfragt.
Wenn Prüfungen weiterhin fehlschlagen, markiert Docker den Container als unhealthy, und
Orchestrierungssysteme können ihn neu starten oder ersetzen.
Authentifizierter tiefer Health-Snapshot:
LAN vs. loopback
scripts/docker/setup.sh setzt standardmäßig OPENCLAW_GATEWAY_BIND=lan, damit Host-Zugriff auf
http://127.0.0.1:18789 mit Docker-Portfreigabe 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 das Gateway direkt erreichen.
Verwenden Sie Bind-Modus-Werte in
gateway.bind (lan / loopback / custom /
tailnet / auto), nicht Host-Aliasse wie 0.0.0.0 oder 127.0.0.1.Speicherung und Persistenz
Docker Compose bind-mountetOPENCLAW_CONFIG_DIR nach /home/node/.openclaw und
OPENCLAW_WORKSPACE_DIR nach /home/node/.openclaw/workspace, sodass diese Pfade
einen Containeraustausch überstehen.
In diesem gemounteten Konfigurationsverzeichnis speichert OpenClaw:
openclaw.jsonfür Verhaltenskonfigurationagents/<agentId>/agent/auth-profiles.jsonfür gespeicherte Provider-OAuth-/API-Key-Authentifizierung.envfür env-basierte Laufzeit-Secrets wieOPENCLAW_GATEWAY_TOKEN
media/, Sitzungs-JSONL-Dateien, cron/runs/*.jsonl
und rotierende Dateilogs unter /tmp/openclaw/.
Shell-Helper (optional)
Für einfacheres tägliches Docker-Management installieren SieClawDock:
scripts/shell-helpers/clawdock-helpers.sh installiert haben, führen Sie den obigen Installationsbefehl erneut aus, damit Ihre lokale Helper-Datei den neuen Speicherort verfolgt.
Verwenden Sie dann clawdock-start, clawdock-stop, clawdock-dashboard usw. Führen Sie
clawdock-help aus, um alle Befehle anzuzeigen.
Siehe ClawDock für die vollständige Helper-Anleitung.
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
das Sandbox-Setup nicht abgeschlossen werden kann, setzt das Skript agents.defaults.sandbox.mode
auf off zurück.Automatisierung / CI (nicht interaktiv)
Automatisierung / CI (nicht interaktiv)
Deaktivieren Sie die Zuweisung einer Compose-Pseudo-TTY mit
-T:Sicherheitshinweis zu gemeinsamem Netzwerk
Sicherheitshinweis zu gemeinsamem Netzwerk
openclaw-cli verwendet network_mode: "service:openclaw-gateway", sodass 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 auf openclaw-cli.Berechtigungen und EACCES
Berechtigungen und EACCES
Das Image läuft als
node (uid 1000). Wenn Sie Berechtigungsfehler auf
/home/node/.openclaw sehen, stellen Sie sicher, dass Ihre Host-Bind-Mounts uid 1000 gehören:Schnellere Rebuilds
Schnellere Rebuilds
Ordnen Sie Ihr Dockerfile so an, dass Abhängigkeits-Layer gecacht werden. Dadurch vermeiden Sie ein erneutes Ausführen von
pnpm install, solange sich Lockfiles nicht ändern:Power-User-Container-Optionen
Power-User-Container-Optionen
Das Standard-Image ist sicherheitsorientiert und läuft als nicht-root
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-Browser installieren:
- Browser-Downloads persistieren: Setzen Sie
PLAYWRIGHT_BROWSERS_PATH=/home/node/.cache/ms-playwrightund verwenden SieOPENCLAW_HOME_VOLUMEoderOPENCLAW_EXTRA_MOUNTS.
OpenAI Codex OAuth (headless Docker)
OpenAI Codex OAuth (headless Docker)
Wenn Sie im Assistenten OpenAI Codex OAuth auswählen, wird eine Browser-URL geöffnet. In
Docker- oder Headless-Setups kopieren Sie die vollständige Redirect-URL, auf der Sie landen, und fügen Sie
sie wieder in den Assistenten ein, um die Authentifizierung abzuschließen.
Metadaten des Basis-Images
Metadaten des Basis-Images
Das Haupt-Docker-Image verwendet
node:24-bookworm und veröffentlicht OCI-Basis-Image-
Annotationen einschließlich org.opencontainers.image.base.name,
org.opencontainers.image.source und weiteren. Siehe
OCI image annotations.Auf einem VPS ausführen?
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 aktiviert ist, führt das Gateway die Tool-Ausführung des Agents
(Shell, Lesen/Schreiben von Dateien usw.) in isolierten Docker-Containern aus, während das
Gateway selbst auf dem Host bleibt. Dadurch erhalten Sie eine harte Grenze um nicht vertrauenswürdige oder
Multi-Tenant-Agent-Sitzungen, ohne das gesamte Gateway zu containerisieren.
Der Sandbox-Scope kann pro Agent (Standard), pro Sitzung oder gemeinsam genutzt sein. Jeder Scope
erhält seinen eigenen Workspace, gemountet unter /workspace. Sie können außerdem
Tool-Allow-/Deny-Richtlinien, Netzwerkisolierung, 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 and Tools — Überschreibungen pro Agent
Schnell aktivieren
Fehlerbehebung
Image fehlt oder Sandbox-Container startet nicht
Image fehlt oder Sandbox-Container startet nicht
Bauen Sie das Sandbox-Image mit
scripts/sandbox-setup.sh
oder setzen Sie agents.defaults.sandbox.docker.image auf Ihr benutzerdefiniertes Image.
Container werden bei Bedarf pro Sitzung automatisch erstellt.Berechtigungsfehler in der Sandbox
Berechtigungsfehler in der Sandbox
Setzen Sie
docker.user auf eine UID:GID, die zum Besitz Ihres gemounteten Workspaces passt,
oder führen Sie chown auf den Workspace-Ordner aus.Benutzerdefinierte Tools in der Sandbox nicht gefunden
Benutzerdefinierte Tools in der Sandbox nicht gefunden
OpenClaw führt Befehle mit
sh -lc (Login-Shell) aus, die
/etc/profile lädt und PATH zurücksetzen kann. 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.Beim Image-Build durch OOM beendet (Exit 137)
Beim Image-Build durch OOM beendet (Exit 137)
Die VM benötigt mindestens 2 GB RAM. Verwenden Sie eine größere Maschinenklasse und versuchen Sie es erneut.
Unauthorized oder Pairing in der Control UI erforderlich
Unauthorized oder Pairing in der Control UI erforderlich
Gateway-Ziel zeigt ws://172.x.x.x oder Pairing-Fehler aus Docker-CLI
Gateway-Ziel zeigt ws://172.x.x.x oder Pairing-Fehler aus Docker-CLI
Gateway-Modus und Bind zurücksetzen:
Verwandt
- Install Overview — alle Installationsmethoden
- Podman — Podman-Alternative zu Docker
- ClawDock — Community-Setup mit Docker Compose
- Updating — OpenClaw aktuell halten
- Configuration — Gateway-Konfiguration nach der Installation