OpenClaw 龙虾 Docker 部署指南(小蜘蛛版)
如果你更习惯容器化部署,可以直接沿着这篇完成 OpenClaw 的 Docker 版本搭建。
本文由群友”小蜘蛛”使用 Claude 总结,感谢贡献。
部署完整指南
基于实际部署经验整理,包含所有遇到的问题及解决方案。 环境:Linux + Docker 29.2.1 + Docker Compose v5.1.0
一、环境准备
## 确认 Docker 和 Docker Compose 已安装docker --versiondocker compose version二、获取源码
git clone https://github.com/openclaw/openclaw.gitcd ~/openclaw三、构建镜像并初始化配置
运行官方脚本,自动完成镜像构建 + 交互式配置向导:
chmod +x docker-setup.sh./docker-setup.sh向导中的填写建议:
| 提示项 | 填写值 |
| Gateway bind | `lan` |
| Gateway auth | `token` |
| Gateway token | 脚本自动生成,记录备用 |
| Tailscale exposure | Off |
| Install Gateway daemon | No |
| 映射类型 | 宿主机 | 容器内 | 说明 |
| 端口(Web UI) | `18789` | `18789` | Gateway 控制面板 |
| 端口(Bridge) | `18790` | `18790` | 内部通信端口 |
| 目录(配置) | `~/.openclaw` | `/home/node/.openclaw` | 配置持久化(必须映射) |
| 目录(工作区) | `~/.openclaw/workspace` | `/home/node/.openclaw/workspace` | Agent 文件读写(必须映射) |
原因: 原生 openclaw-gateway 进程已占用默认端口。
解决: 修改 ~/openclaw/.env 中的端口:
OPENCLAW_GATEWAY_PORT=18790 # 改为未占用的端口OPENCLAW_BRIDGE_PORT=18793检查可用端口:
ss -tlnp | grep 1879问题 2:Permission denied 配置目录无法写入
原因: 配置目录由 root(uid=0) 创建,容器以 node(uid=1000) 运行,无写权限。
解决:
## 方案 A:开放所有权限(快速)chmod -R 777 ~/.openclaw
## 方案 B:更规范,改变所有者为 uid=1000chown -R 1000:1000 ~/.openclaw问题 3:Missing config. Run openclaw setup
原因: 容器内 node 用户无法读取配置目录。
解决: 同问题 2,修复 ~/.openclaw 目录权限后重启容器:
chmod -R 755 ~/.openclawchmod 644 ~/.openclaw/openclaw.jsondocker compose --env-file .env restart openclaw-gateway问题 4:Gateway failed to start: non-loopback Control UI requires gateway.controlUi.allowedOrigins
原因: 使用 --bind lan 模式时,网关要求配置 CORS 来源。
解决: 在 ~/.openclaw/openclaw.json 的 gateway 字段添加:
"gateway": { "mode": "local", "auth": { "mode": "token", "token": "your-token-here" }, "controlUi": { "dangerouslyAllowHostHeaderOriginFallback": true }}问题 5:Web UI 显示”健康状态离线 / 已断开连接”
原因: 浏览器 WebCrypto API 要求 HTTPS 或 localhost 安全上下文,通过 HTTP 公网 IP 访问时无法建立设备身份。
解决(HTTP 临时方案): 在 ~/.openclaw/openclaw.json 中配置:
"gateway": { "controlUi": { "dangerouslyAllowHostHeaderOriginFallback": true, "allowInsecureAuth": true, "dangerouslyDisableDeviceAuth": true }}修改后重启容器生效:
docker compose --env-file .env restart openclaw-gateway⚠️ 以上三个
dangerously*标志会降低安全性,适合内网或个人使用。生产环境建议配置 HTTPS(见下方远程访问方式三)。
八、远程访问方式
方式一:直接 IP 访问(HTTP)
http://<服务器IP>:18790/?token=<your-token>Token 查看方式:
grep OPENCLAW_GATEWAY_TOKEN ~/openclaw/.env## 或查看配置文件cat ~/.openclaw/openclaw.json | python3 -c "import sys,json; d=json.load(sys.stdin); print(d['gateway']['auth']['token'])"方式二:SSH 隧道(更安全)
在本地机器执行:
ssh -N -L 18790:localhost:18790 user@<服务器IP>浏览器访问:
http://localhost:18790/?token=<your-token>方式三:Nginx 反向代理 + HTTPS(推荐)
server { listen 443 ssl; server_name openclaw.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
location / { proxy_pass http://127.0.0.1:18790; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }}配置 HTTPS 后可移除 dangerously* 标志,恢复默认安全设置。
九、常用运维命令
cd ~/openclaw
## 查看容器状态docker compose ps
## 查看实时日志docker compose logs -f openclaw-gateway
## 查看 openclaw 详细日志(含错误信息)docker exec openclaw-openclaw-gateway-1 tail -50 /tmp/openclaw/openclaw-$(date +%Y-%m-%d).log
## 重启服务docker compose --env-file .env restart openclaw-gateway
## 停止服务docker compose down
## 重新构建镜像(更新版本后)docker build -t openclaw:local -f Dockerfile .
## Token 丢失时重新获取docker compose run --rm openclaw-cli dashboard --no-open十、完整 .openclaw/openclaw.json 配置参考
{ "meta": { "lastTouchedVersion": "2026.2.25" }, "models": { "mode": "merge", "providers": { "zhipu": { "baseUrl": "https://api.edgefn.net/v1", "apiKey": "your-api-key", "api": "openai-completions", "models": [ { "id": "GLM-5", "name": "GLM-5 (Custom Provider)", "api": "openai-completions", "reasoning": false, "input": ["text"], "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }, "contextWindow": 200000, "maxTokens": 8192 } ] } } }, "agents": { "defaults": { "model": { "primary": "zhipu/GLM-5" }, "compaction": { "mode": "safeguard" }, "maxConcurrent": 4, "subagents": { "maxConcurrent": 8 } } }, "gateway": { "mode": "local", "auth": { "mode": "token", "token": "your-gateway-token" }, "controlUi": { "dangerouslyAllowHostHeaderOriginFallback": true, "allowInsecureAuth": true, "dangerouslyDisableDeviceAuth": true } }}十一、.env 文件参考
OPENCLAW_CONFIG_DIR=/root/.openclawOPENCLAW_WORKSPACE_DIR=/root/.openclaw/workspaceOPENCLAW_GATEWAY_PORT=18790OPENCLAW_BRIDGE_PORT=18793OPENCLAW_GATEWAY_BIND=lanOPENCLAW_GATEWAY_TOKEN=your-token-hereOPENCLAW_IMAGE=openclaw:localOPENCLAW_EXTRA_MOUNTS=OPENCLAW_HOME_VOLUME=OPENCLAW_DOCKER_APT_PACKAGES=文档生成时间:2026-02-26
OpenClaw 龙虾 Docker 部署指南(小蜘蛛版)
https://brotherhong.com/posts/openclaw-docker/