OpenClaw in Docker ausführen
Führe Gateway und CLI als Docker-Compose-Services aus, entweder aus dem Quellcode gebaut oder mit dem vorgefertigten Image ghcr.io/openclaw/openclaw.
Du benötigst Git und Docker mit Compose. Für einen lokalen Image-Build sind mindestens 6 GB RAM nötig. Verwende auf einem kleineren Host daher das vorgefertigte Image.
Repository klonen und Setup ausführen
Das Setup-Skript im Repository richtet die Compose-Services ein. Um den lokalen Build zu überspringen, exportiere OPENCLAW_IMAGE=ghcr.io/openclaw/openclaw:latest, bevor du das Skript ausführst. Ein Mirror ist auch auf Docker Hub als openclaw/openclaw verfügbar.
shell git clone https://github.com/openclaw/openclaw.git cd openclaw ./scripts/docker/setup.shDashboard öffnen
Dadurch wird der CLI-Container einmalig für den Dashboard-Befehl gestartet. --no-open verhindert, dass der Container versucht, einen Browser zu öffnen. Andere CLI-Befehle funktionieren genauso, zum Beispiel docker compose run --rm openclaw-cli channels add --channel telegram --token "<token>".
shell docker compose run --rm openclaw-cli dashboard --no-openDaten persistieren und Host dimensionieren
Speichere den OpenClaw-Zustand, also openclaw.json und den Agent-Workspace, in einem benannten Volume oder einem Bind Mount, damit die Daten Container-Neubauten und Updates überstehen. Wenn du das Image selbst baust, solltest du mindestens 6 GB RAM einplanen. Mit dem vorgefertigten Image und Cloud-Modellen läuft das Gateway mit 1 GB. In einem Container wird gateway.bind mit auto zu 0.0.0.0 aufgelöst. Lass daher die Token-Authentifizierung aktiviert.
Container aktualisieren
Lade neue Images für den Gateway- und den CLI-Service herunter und erstelle anschließend nur das Gateway neu. Deine Konfiguration und dein Workspace bleiben im Volume erhalten.
shell docker compose pull openclaw-gateway openclaw-cli docker compose up -d openclaw-gateway
Da das Gateway im Container auf 0.0.0.0 lauscht, veröffentlicht eine Portzuordnung wie 18789:18789 den Port auf allen Netzwerkschnittstellen des Hosts. Verwende stattdessen 127.0.0.1:18789:18789.