Bilibili - 鸦居
3324 字
17 分钟
使用Docker部署OpenClaw
一、拉取镜像
有两种方案
- 拉取官网仓库github —— openclaw代码,然后自行编译:
docker build -t openclaw:local . - 使用第三方镜像,这里我直接用openclaw中文站的镜像:
docker pull jiulingyun803/openclaw-cn:latest
二、配置docker-compose.yml
services:
openclaw-gateway:
image: jiulingyun803/openclaw-cn:latest
container_name: openclaw-gateway
environment:
HOME: /home/node
TERM: xterm-256color
OPENCLAW_GATEWAY_TOKEN: your-secure-token-here
volumes:
- ./openclaw/.openclaw:/home/node/.openclaw
- ./openclaw/clawd:/home/node/clawd
ports:
- "18789:18789"
- "18790:18790"
init: true
restart: unless-stopped
networks:
- backend
command:
[
"node",
"dist/index.js",
"gateway",
"--bind",
"loopback",
"--port",
"18789"
]
openclaw-cli:
image: jiulingyun803/openclaw-cn:latest
container_name: openclaw-cli
environment:
HOME: /home/node
TERM: xterm-256color
BROWSER: echo
volumes:
- ./openclaw/.openclaw:/home/node/.openclaw
- ./openclaw/clawd:/home/node/clawd
stdin_open: true
tty: true
init: true
networks:
- backend
entrypoint: ["node", "dist/index.js"]
三、启动openclaw
- 先使用
openclaw-cli的onboard命令进行初始化:
docker compose run --rm openclaw-cli onboard
跟着 提示填写相关配置即可
2. 再启动openclaw-gateway:
docker compose up -d openclaw-gateway
- 进入gateway web ui界面:
http://localhost:18789
四、可能会遇到的问题
- 启动
openclaw-cli时出现:Error: EACCES: permission denied, mkdir '/home/node/.openclaw/agents/main/agent'
原因:跟docker用户权限相关,简单点修正宿主机目录权限,直接将对应数据文件夹权限开放即可。
root@instance:/project# chown -R 1000:1000 ./openclaw/.openclaw
root@instance:/project# chown -R 1000:1000 ./openclaw/clawd/
启动
openclaw-gateway时容器日志出现:2026-02-24T08:58:24.481Z Missing config. Run openclaw-cn setup or set gateway.mode=local (or pass --allow-unconfigured).
需要先使用cli容器完成初始化再启动gateway在gateway web ui界面出现:
disconnected (1008): pairing required
需要将设备添加到信任列表
docker compose run --rm openclaw-cli devices list
docker compose run --rm openclaw-cli devices approve <requestId>
# openclaw-cli报错则用以下命令
docker compose exec openclaw-gateway node dist/index.js devices list
docker compose exec openclaw-gateway node dist/index.js devices approve <requestId>
- 在gateway web ui界面出现:
disconnected (1006): no reason
原因:websocket连接失败;
因为当前镜像jiulingyun803/openclaw-cn:latest的 WebSocket Origin 验证只允许以下来源:
- localhost / 127.0.0.1 / ::1(本地环回地址)
- .ts.net 结尾的域名(Tailscale)
- 空 Origin(非浏览器客户端如 curl)
- "null" Origin(file:// 协议)
目前的解决方案:通过 SSH 端口转发:ssh -N -L 18789:localhost:18789 user@your-gateway-server,然后浏览器使用浏览器访问http://localhost:18789即可
- 在gateway web ui界面出现:
disconnected (1008): unauthorized: gateway token mismatch (open a tokenized dashboard URL or paste token in Control UI settings)
解决方案:进入dashboard的url需要添加token参数,如http://localhost:18789/?token=your_token
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!
Firefly