Docker 搞定 OpenClaw:从编译、搬家到 Token 设置全纪录
Docker 搞定 OpenClaw:从编译、搬家到 Token 设置全纪录
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
这篇文章主要是复盘一下怎么把 OpenClaw 从源代码开始弄成 Docker 容器,顺便把编译打包、换机器部署以及怎么配置访问权限都捋一遍。

手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
1. 把代码拉下来
第一步,先把 OpenClaw 的代码从官方仓库里拉下来:
git clone https://github.com/openclaw/openclaw.git
cd openclaw
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
2. 编译加打包(跑一下 docker-setup.sh)
进到源码目录里头,直接跑一下 docker-setup.sh 这个脚本,编译和打包的事儿就交给它了:
./docker-setup.sh
脚本跑起来之后,它会自动干这么几件事:
- 先把依赖包装好(npm 或者 pnpm)
- 接着把 TypeScript 代码转成 JavaScript 放到
dist/文件夹里 - 最后直接打出一个包含了编译后程序的 Docker 镜像
想知道成没成功,敲个命令瞅瞅:
docker images | grep openclaw
或者直接进容器里试一下:
docker run --rm openclaw:local node dist/index.js --version
只要能蹦出版本号,那就算编译搞定了。
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
3. 把容器跑起来
接着用 docker-compose 把 OpenClaw 的网关和命令行工具拉起来:
docker-compose up -d
跑起来以后,网关默认会占用 18789 这个端口。
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
4. 搞定 Token 进 Control UI
- 钻进容器里头,生成一个用来登录 Dashboard 的 Token:
docker-compose exec openclaw-cli openclaw dashboard --no-open
出来的结果大概长这样:
Dashboard URL: http://127.0.0.1:18789/#token=<your-token>
- 把上面那个 URL 复制粘贴到浏览器里,就能凭 Token 进 Control UI 后台了。
- 如果你想让别的电脑也能连,得去
openclaw.json里改个配置:
"gateway": {
"controlUi": {
"allowInsecureAuth": true
}
}
提个醒:这招只能用 Token 登,安全性差点意思,一定要确保网络环境安全再这么干。
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
5. 搬家到别的机器
换机器部署的时候,光搬运 Docker 镜像是不够的,配置文件和环境数据也都得打包带走:
- 先把现有的 Docker 镜像存成文件:
docker save openclaw:local -o openclaw.tar
- 到了新机器上,把这个镜像文件导进去:
docker load -i openclaw.tar
- 把配置文件和环境变量搬过去:
# 把 docker-compose.yml 和 .env 传过去
scp docker-compose.yml .env user@target:/home/user/openclaw/
# 把 OpenClaw 的核心配置目录也传过去
scp -r /root/.openclaw user@target:/root/
- 在新机器上把容器跑起来:
cd /home/user/openclaw
docker-compose up -d
这么折腾一圈,你原来的 Token、Workspace 还有插件配置就都能原封不动地过来了。
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
6. 几个要注意的坑
- 关于 HTTPS 和设备身份
- 默认情况下,Control UI 是要验证 设备身份 的,不然浏览器直接给你弹个
control ui requires device identity的错。 - 要是想在公网或者多台设备上用,强烈建议上 HTTPS(自己签个证书或者用 Tailscale Serve 都行),给 Token 加把锁。
- 实在没辙必须用 HTTP 的话,就在
openclaw.json里加上这一段:
“gateway”: {
“controlUi”: {
“allowInsecureAuth”: true
}
}
这样就只认 Token 了,但安全性肯定大打折扣。
- 默认情况下,Control UI 是要验证 设备身份 的,不然浏览器直接给你弹个
- 跨域问题
- Control UI 默认只认
http://localhost或者127.0.0.1。 - 想要从别的机器访问,你得把那台机器的访问地址加到
gateway.controlUi.allowedOrigins里去。比如这样:
“gateway”: {
“controlUi”: {
“allowedOrigins”: [“http://172.244.44.35:18789”]
}
}
- Control UI 默认只认
- 给设备授权
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
- 多台设备连的时候,可能得手动批一下:
openclaw devices list
openclaw devices approve - 要是配对挂了,或者 Token 试错次数太多,会提示
unauthorized: too many failed authentication attempts,这时候要么在那干等一会儿,要么干脆重新生个 Token 算了。
- Token 能不能多处使用
- 正常来说,一个 Token 同一时间只能给一台设备用。
- 如果好几个人都要用,最好还是给每个人单独弄个 Token,或者硬着头皮开
allowInsecureAuth(再次强调,有风险)。
更多推荐


所有评论(0)