OpenClaw Docker Linux
Run OpenClaw inside Docker on Linux with Tailscale remote access. Complete setup guide covering installation, configuration, and critical gotchas. Trigger ph...
Like a lobster shell, security has layers — review code before you run it.
License
Runtime requirements
ANTHROPIC_API_KEYrequiredOPENCLAW_GATEWAY_TOKENrequiredSKILL.md
OpenClaw Docker Setup
Run OpenClaw inside Docker on Linux (Ubuntu 24.04+) with Tailscale for remote access.
Quick Start
-
Install Docker via APT (not Snap):
sudo apt install docker.io docker-compose && \ sudo usermod -aG docker $USERThen log out and back in —
sudo usermoddoesn't take effect withnewgrp. -
Run onboard to configure gateway and get your token:
docker-compose run --rm openclaw-cli onboard -
Create
docker-compose.ymlusing the token from onboard. Seereferences/docker-config.mdfor the full template and .env setup. -
Start the container:
docker-compose up -dAccess at
http://localhost:18789?token=YOUR_TOKEN
Key Concepts
- bind: lan vs loopback —
lan= accessible from the host via port mapping;loopback= locked inside container. - Tailscale on host, not container — Run Tailscale on the Ubuntu host for remote access.
- One method only — Docker OR global install, never both (port + config conflicts).
- Config path mapping — Host
~/.openclaw/→ Container/home/node/.openclaw/(same files, different paths). - Docker group login —
sudo usermod -aG dockerrequires full logout/login, notnewgrp.
Common Usage
Generate a secure token:
openssl rand -hex 32
View container logs:
docker-compose logs -f openclaw
Run CLI commands inside container:
docker-compose run --rm openclaw-cli COMMAND_HERE
Fix volume permissions (Linux):
sudo chown -R 1000:1000 ~/.openclaw ~/openclaw
Approve Telegram pairing:
docker-compose run --rm openclaw-cli pairing approve telegram YOUR_CODE
Access via Tailscale (recommended — HTTPS):
sudo tailscale up
./docker-setup.sh tailscale # Starts tailscale serve on port 18789
Then visit https://YOUR_MACHINE_NAME.YOUR_TAILNET.ts.net?token=YOUR_TOKEN from any device on your tailnet. Use MagicDNS hostname over raw IP — it's HTTPS by default and more stable.
References
references/docker-config.md— docker-compose.yml, .env template, permissions, Tailscale, management scriptreferences/quickstart.md— Simple 5-minute setup guidereferences/docker-setup.sh— Management script (start/stop/logs/doctor/tailscale/approve_telegram)references/gotchas.md— Critical mistakes and how to avoid themreferences/troubleshooting.md— Common errors and fixes
Files
6 totalComments
Loading comments…
