
A ready-to-deploy Docker image for https://github.com/openclaw/openclaw, the powerful open-source AI assistant that brings Claude and GPT to your favorite messaging apps. Built for ODIN Fleet and any Docker-compatible platform.
Features:
bash# 1. Configure cp .env.example .env # Edit .env: set your API key and gateway auth (password or token) # 2. Build & start docker compose up -d --build # 3. Access Control UI # With password: https://localhost:18789 (enter password when prompted) # With token: https://localhost:18789/?token=YOUR_TOKEN
OpenClaw stores all configuration and state in /home/node/.openclaw inside the container. This directory must be mounted as a volume to prevent data loss when the container is recreated.
yamlvolumes: - ./data:/home/node/.openclaw
This folder contains:
openclaw.json — main configuration (gateway settings, API keys, TLS config)| Variable | Purpose | Default |
|---|---|---|
OPENCLAW_GATEWAY_HOST | Gateway public IP/FQDN | localhost |
OPENCLAW_GATEWAY_PORT | Gateway port | 18789 |
OPENCLAW_GATEWAY_PASSWORD | Gateway password (user-friendly) | - |
OPENCLAW_GATEWAY_TOKEN | Gateway token (machine-friendly) | Auto-generated |
ANTHROPIC_API_KEY | Anthropic API key | - |
OPENAI_API_KEY | OpenAI API key | - |
GEMINI_API_KEY | Google Gemini API key | - |
OPENCLAW_AUTH_CHOICE | Auth provider if no API key | skip |
OPENCLAW_TLS_ENABLED | Enable HTTPS | false |
OPENCLAW_SKIP_ONBOARD | Skip auto-setup (for OAuth) | false |
OPENCLAW_MODEL | AI model to use | Auto-detected |
OPENCLAW_AUTO_UPDATE | Auto-update on startup | false |
OPENCLAW_UPDATE_CHANNEL | Update channel | stable |
OPENCLAW_SSH_ENABLED | Enable SSH server | false |
OPENCLAW_SSH_PORT | SSH server port | 22 |
OPENCLAW_SSH_AUTHORIZED_KEYS | SSH public keys (one per line) | - |
Auth modes: Set
OPENCLAW_GATEWAY_PASSWORDfor password auth, orOPENCLAW_GATEWAY_TOKENfor token auth. If neither is set, a token is auto-generated and printed in the logs.
Set OPENCLAW_TLS_ENABLED=true to enable HTTPS with an auto-generated self-signed certificate.
Custom certificates (mounted):
yamlvolumes: - ./certs/cert.pem:/certs/cert.pem:ro - ./certs/key.pem:/certs/key.pem:ro
Docker Secrets:
yamlsecrets: - tls_cert - tls_key
Disable TLS:
yamlenvironment: - OPENCLAW_TLS_ENABLED=false
Enable SSH for remote access and debugging. Uses public key authentication only (no passwords).
yamlenvironment: - OPENCLAW_SSH_ENABLED=true - OPENCLAW_SSH_AUTHORIZED_KEYS=ssh-ed25519 AAAA... user@host ports: - "2222:22"
Multiple keys (via environment):
yamlenvironment: - OPENCLAW_SSH_ENABLED=true - | OPENCLAW_SSH_AUTHORIZED_KEYS= ssh-ed25519 AAAA... user1@host ssh-rsa AAAA... user2@host
Via mounted file:
yamlvolumes: - ./authorized_keys:/ssh/authorized_keys:ro
Via Docker secret:
yamlsecrets: - ssh_authorized_keys
Then connect: ssh -p 2222 node@<host>
bash# 1. Interactive setup docker compose run --rm openclaw openclaw onboard # 2. Set OPENCLAW_SKIP_ONBOARD=true in .env # 3. Start docker compose up -d
bash# WhatsApp (shows QR code) docker compose exec -it openclaw openclaw channels login --channel whatsapp # Telegram docker compose exec openclaw openclaw channels add --channel telegram --token <BOT_TOKEN> # Discord docker compose exec openclaw openclaw channels add --channel discord --token <BOT_TOKEN> # Slack docker compose exec openclaw openclaw channels add --channel slack --bot-token <xoxb-...> --app-token <xapp-...>
bashdocker compose exec openclaw openclaw health docker compose exec openclaw openclaw channels list docker compose exec openclaw openclaw <command>
Set OPENCLAW_AUTO_UPDATE=true to automatically run openclaw update every time the container starts. This keeps OpenClaw at the latest version without rebuilding the image.
bashOPENCLAW_AUTO_UPDATE=true
You can also choose a release channel (stable, beta, or dev):
bashOPENCLAW_UPDATE_CHANNEL=beta
bashdocker compose pull docker compose up -d
Or rebuild from source:
bashdocker compose build --no-cache docker compose up -d
bashdocker compose logs -f # View logs rm -rf ./data && docker compose up -d # Reset and re-run setup
Permission denied on ./data directory:
If you see EACCES: permission denied errors for /home/node/.openclaw/openclaw.json, fix the data directory permissions:
bashsudo chown -R 1000:1000 ./data
The node user inside the container has UID 1000. This is common on Linux hosts where Docker creates the directory as root.




探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务