NEU 📢 Begrenztes Startangebot: bis zu 70 % Rabatt auf deinen ersten Monat, für jedes Spiel!Tarife ansehen

OpenClaw mit Docker betreiben

OpenClawUpdated Nov 6, 20268 min read

Kurz gesagt. Klone das OpenClaw-Repository und führe ./scripts/docker/setup.sh aus, mit gesetztem OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest". So nutzt das Skript das offizielle fertige Image, statt selbst eines zu bauen (ein Build aus dem Quellcode braucht mindestens 6 GB RAM). Das Skript führt das Onboarding aus, schreibt ein Gateway-Token in .env und startet das Gateway mit Docker Compose. Mounte den Zustandsordner ~/.openclaw, damit nichts verloren geht, wenn der Container ersetzt wird, und halte Port 18789 für das Internet geschlossen: Die veröffentlichten Ports von Docker umgehen UFW. Gib dem Container mindestens 2 GB Speicher. Bei einer Begrenzung auf 1 GB ohne Swap wurde das offizielle Image in unserem Test wegen Speichermangels beendet.

Geprüft am 6. November 2026, gültig für OpenClaw 2026.11.1.

Diese Anleitung stützt sich auf die Docker-Dokumentation von OpenClaw, die docker-compose.yml in seinem Repository und einen Test des offiziellen Images auf unserem eigenen Server (Zahlen unten).

Brauchst du Docker überhaupt?

Die OpenClaw-Doku nennt Docker optional: nützlich für ein isoliertes Wegwerf-Gateway oder einen Host, auf dem du kein Node.js haben willst. Auf einem VPS, der nur OpenClaw betreibt, ist die einfache npm-Installation mit einem systemd-Dienst der Hauptweg (siehe OpenClaw rund um die Uhr hosten (24/7)). Docker passt gut, wenn du ohnehin schon andere Dinge in Containern betreibst.

Was das offizielle Image ist

  • Wo: ghcr.io/openclaw/openclaw (primär) und der Docker-Hub-Mirror openclaw/openclaw. OpenClaw rät von inoffiziellen Mirrors ab.
  • Tags: latest, genaue Versionen wie 2026.11.1, -slim-Varianten und -browser-Varianten, die Chromium für die Browser-Automatisierung enthalten.
  • Innen: Es läuft als Benutzer node unter tini, und sein Entrypoint führt openclaw doctor --fix auf deinem gemounteten Zustand aus, bevor das Gateway startet. Image-Upgrades migrieren den Zustand also für dich. Ein eingebauter Health-Check ruft /healthz auf.

Was wir gemessen haben

Wir haben ghcr.io/openclaw/openclaw:2026.11.1 auf einem unserer Linux-Server gezogen und das Gateway zweimal mit docker run gestartet (nicht mit Compose), ohne Modell, ohne Chat-App, ohne veröffentlichten Port, begrenzt auf 1 CPU und ohne Swap: einmal mit 2 GB Speicherlimit, einmal mit 1 GB. Die Speicherwerte sind in MiB angegeben, so wie Linux sie meldet.

Ergebnis
DownloadEtwa 695 MB komprimiert (amd64), 2.818 MiB (etwa 3 GB) auf der Platte nach dem Pull
Node.js im Image24.22.1
2-GB-Limit: Start/healthz antwortete 48 Sekunden nach docker run, inklusive des Doctor-Durchlaufs. Das Gateway lud 14 Plugins und meldete „ready“ 22 Sekunden nach seinem eigenen Start
2-GB-Limit: Speicher im Ruhezustand1.349 MiB 30 Sekunden nachdem es den Health-Check beantwortet hatte, 1.106 MiB zwei Minuten danach, Spitzenwert 1.439 MiB. Keine Out-of-Memory-Ereignisse
1-GB-LimitDas Gateway erreichte „ready“, dann wurde der ganze Container etwa 54 Sekunden nach dem Start wegen Speichermangels beendet (Exit-Code 137)

Die FAQ von OpenClaw nennt 1 GB als absolutes Minimum für einen VPS. Mit dieser Version in einem auf 1 GB begrenzten Container reichte das nicht. Plane mit 2 GB oder mehr, und noch mehr bei echten Gesprächen, mehreren Chat-Apps oder einem -browser-Image. Mehr dazu in Wie viel Arbeitsspeicher OpenClaw braucht.

Schritt für Schritt mit Docker Compose

  1. Installiere Docker Engine und Docker Compose v2 und hole dir dann das Repository:
    git clone https://github.com/openclaw/openclaw.git
    cd openclaw
  2. Führe das Setup-Skript mit dem fertigen Image aus:
    export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"
    ./scripts/docker/setup.sh
    Ohne OPENCLAW_IMAGE baut das Skript openclaw:local aus dem Quellcode, was mindestens 6 GB RAM braucht. Ein Build, der mit Killed oder Exit-Code 137 endet, hatte nicht genug Speicher. Das Skript fragt nach deinem API-Schlüssel des Anbieters, erzeugt das Gateway-Token und schreibt es in .env, dann startet es das Gateway.
  3. Öffne das Dashboard unter http://127.0.0.1:18789/ auf demselben Rechner und füge das Token aus .env unter Settings ein. Brauchst du den Link noch einmal: docker compose run --rm openclaw-cli dashboard --no-open.
  4. Füge eine Chat-App hinzu:
    docker compose run --rm openclaw-cli channels add --channel telegram --token "<token>"
    docker compose run --rm openclaw-cli channels add --channel discord --token "<token>"
    Neue DMs starten im Pairing-Modus: Schreib deinem Bot und führe dann docker compose run --rm openclaw-cli pairing approve telegram <CODE> aus. Mehr dazu in OpenClaw mit Telegram verbinden.
  5. Prüfe es:
    docker compose ps
    docker compose logs --tail=100 openclaw-gateway
    curl -fsS http://127.0.0.1:18789/healthz

Für einen Host ohne Terminal-Abfragen dokumentiert OpenClaw einen Headless-Bootstrap: Trage den Schlüssel des Anbieters, OPENCLAW_GATEWAY_TOKEN und TELEGRAM_BOT_TOKEN in .env ein und führe dann onboard --non-interactive und channels add --channel telegram --use-env über den Gateway-Container aus, bevor du docker compose up -d openclaw-gateway startest.

Persistenz: was du mountest und sicherst

Im ContainerWas dort liegtHost-Seite (Standard des Setups)
/home/node/.openclawopenclaw.json, die SQLite-Speicher (Anbieter-Zugang, Sitzungen), installierte Plugins, Geheimnisse in .env$HOME/.openclaw
/home/node/.openclaw/workspaceWorkspace und Gedächtnisdateien des Agents$HOME/.openclaw/workspace
/home/node/.config/openclawDer Schlüssel für ältere verschlüsselte Zugangsdaten$HOME/.openclaw-auth-profile-secrets
  • Mounte den Ordner, nie die einzelne Datei. OpenClaw speichert openclaw.json, indem es die Datei ersetzt. Ein Bind-Mount einer einzelnen Datei kann dazu führen, dass der Container eine alte Kopie liest.
  • Halte den Zustand auf einer lokalen Platte. NFS-, SMB- und CIFS-Freigaben bieten SQLite nicht die gemeinsame Speicherkoordination, die es braucht, und können es beschädigen.
  • Ein Gateway pro Zustandsordner. Stoppe den alten Container, bevor du seinen Ersatz startest.
  • Behandle Backups wie Geheimnisse. Laut OpenClaw-Doku liegen OAuth-Token als Klartext in diesen SQLite-Dateien.
  • Alles, was du in einem laufenden Container installierst, geht verloren, wenn er neu erstellt wird. Zusätzliche Werkzeuge gehören beim Build ins Image.

Den Port privat halten

Die docker-compose.yml des Repositories veröffentlicht 18789 (sowie 18790 und 3978) auf dem Host und startet das Gateway mit --bind lan, sodass der veröffentlichte Port es erreicht. Auf einem VPS heißt das: Der Dashboard-Port liegt auf der öffentlichen Adresse, solange du ihn nicht sperrst. Zwei Fallen:

  • UFW deckt das nicht ab. Veröffentlichte Container-Ports laufen über die eigenen Weiterleitungsketten von Docker, nicht nur über die INPUT-Regeln des Hosts. Die OpenClaw-Doku nennt Regeln für die Kette DOCKER-USER. Eine Cloud-Firewall, die nur SSH durchlässt, funktioniert ebenfalls.
  • Nutze einen Tunnel, um das Dashboard zu erreichen: ssh -N -L 18789:127.0.0.1:18789 root@<vps-ip>, dann öffne http://127.0.0.1:18789/ auf deinem eigenen Computer.

Compose setzt außerdem restart: unless-stopped, sodass das Gateway nach einem Absturz oder Neustart zurückkommt, und entfernt die Capabilities NET_RAW und NET_ADMIN.

Aktualisieren

docker compose pull openclaw-gateway openclaw-cli
docker compose stop openclaw-gateway
docker compose up -d openclaw-gateway

Der Entrypoint des Images repariert und migriert den gemounteten Zustand beim Start. Sichere vorher ~/.openclaw. Mit latest gehst du bei jeder stabilen Version mit; pinne einen Tag wie 2026.11.1, um bei einer Version zu bleiben.

Docker überspringen: OpenClaw auf PlayNHost betreiben

Ein PlayNHost-Server ist schon ein isolierter Container mit eigenem Speicherlimit, also gibt es nichts zu komponieren. Wir nutzen nicht das offizielle Image: Der Server läuft mit Node.js 26 und installiert beim ersten Start das npm-Paket openclaw, danach prüft er bei jedem Start, ob es eine neuere Version gibt.

  • Einrichtung: Füge auf der Seite Agent einen API-Schlüssel eines KI-Anbieters und einen Telegram- oder Discord-Bot-Token ein und drücke dann Start. In unserem Test derselben Einrichtung lief der Agent 67 Sekunden nach dem ersten Start, Installation inklusive.
  • Persistenz: .openclaw liegt auf der Platte des Servers und in seinen Backups (in unserem Test etwa 4 MB). Das Programm und seine Caches werden neu installiert, nicht gesichert.
  • Port: Das Gateway lauscht nur auf der eigenen Loopback-Adresse des Servers, Port 18789, mit einem Token, das das Panel erzeugt. Nichts wird veröffentlicht, also kannst du bei der Firewall nichts falsch machen.
  • Speicher: Tarife mit 2 GB, 4 GB und 8 GB. Der Start weigert sich, OpenClaw mit weniger als 2 GB auszuführen.
  • Noch nicht enthalten: das Web-Dashboard, andere Chat-Apps als Telegram und Discord sowie Browser-Automatisierung (kein Chromium).

Erstelle einen OpenClaw-Server.

PlayNHost ist nicht mit der OpenClaw Foundation verbunden. OpenClaw ist Open-Source-Software unter der MIT-Lizenz.

Läuft dein Server schon woanders? Zieh ihn zu uns um

UNSERE NEUESTEN BLOGS