在Windows docker desktop中编译、运行OpenClaw(下篇)
上篇回顾与本篇目标
在上篇文章(点击回顾)里,咱们已经搞定了OpenClaw的镜像tar文件获取。接下来,该进入实战环节了——今天手把手教你如何在Windows的Docker Desktop里,把这个镜像顺利跑起来。
第一步:载入镜像
首先,打开你的终端或命令行,切换到刚才下载好的 tar 文件所在目录。然后,执行一个简单的命令:
docker load -i openclaw-local.tar
看到加载成功的提示,就说明镜像已经稳稳当当地导入到你的Docker环境里了。这是让容器拥有“生命力”的第一步。
第二步:配置核心文件
启动之前,咱们得准备好两个关键配置文件:docker-compose.yml 和 openclaw.json。
调整 docker-compose.yml
从OpenClaw的源代码根目录里,你能找到原版的 docker-compose.yml。因为我们是在Windows Docker Desktop环境下运行,需要根据实际情况做些调整。直接参考下面这个改好的版本就行:
services:
openclaw-gateway:
image: ${OPENCLAW_IMAGE:-openclaw:local}
user: root
environment:
HOME: /home/node
TERM: xterm-256color
OPENCLAW_GATEWAY_TOKEN: 8a9b7c6d5e4f3a2b1c0d9e8f7a6b5c4d #访问密钥,
CLAUDE_AI_SESSION_KEY: ${CLAUDE_AI_SESSION_KEY}
CLAUDE_WEB_SESSION_KEY: ${CLAUDE_WEB_SESSION_KEY}
CLAUDE_WEB_COOKIE: ${CLAUDE_WEB_COOKIE}
volumes:
- "D:\\ProgramData\\Docker-Volume\\openclaw\\config:/home/node/.openclaw" #config文件夹映射
- "D:\\ProgramData\\Docker-Volume\\openclaw\\workspace:/home/node/.openclaw/workspace" #workspace文件夹映射
ports:
- "${OPENCLAW_GATEWAY_PORT:-18789}:18789"
- "${OPENCLAW_BRIDGE_PORT:-18790}:18790"
init: true
restart: unless-stopped
command:
[
"node",
"dist/index.js",
"gateway",
"--bind",
"lan",
"--port",
"18789",
"--allow-unconfigured" #务必要加这段,因为上面environment段中有若干参数我们还没配置
]
openclaw-cli:
image: ${OPENCLAW_IMAGE:-openclaw:local}
environment:
HOME: /home/node
TERM: xterm-256color
OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN}
BROWSER: echo
CLAUDE_AI_SESSION_KEY: ${CLAUDE_AI_SESSION_KEY}
CLAUDE_WEB_SESSION_KEY: ${CLAUDE_WEB_SESSION_KEY}
CLAUDE_WEB_COOKIE: ${CLAUDE_WEB_COOKIE}
volumes:
- "D:\\ProgramData\\Docker-Volume\\openclaw\\config:/home/node/.openclaw" #config文件夹映射
- "D:\\ProgramData\\Docker-Volume\\openclaw\\workspace:/home/node/.openclaw/workspace" #workspace文件夹映射
stdin_open: true
tty: true
init: true
entrypoint: ["node", "dist/index.js"]
这里有个小提示:配置里的 openclaw-cli 部分是用于客户端命令行的容器。如果你更习惯用Web UI管理,或者在Windows本地直接连接,这段配置其实是可以省略的,不会影响核心网关服务。
创建 openclaw.json
接下来,需要在映射的config文件夹里建立一个配置文件。根据上面compose文件里的路径设置(示例中是 D:\ProgramData\Docker-Volume\openclaw\config\),创建一个名为 openclaw.json 的文件,内容如下:
{
"gateway": {
"mode": "local",
"bind": "lan",
"port": 18789,
"controlUi": {
"enabled": true,
"allowInsecureAuth": true,
"dangerouslyDisableDeviceAuth": true,
"dangerouslyAllowHostHeaderOriginFallback": true
},
"auth": {
"mode": "token",
"token": "8a9b7c6d5e4f3a2b1c0d9e8f7a6b5c4d"
}
}
}
配置文件就绪,意味着服务运行所需的“地图”和“规则”都已经设定好了。
最后一步:启动服务
现在万事俱备。打开终端,进入你的 docker-compose.yml 文件所在的目录,执行启动命令:
docker compose up -d
看到容器成功创建并运行的消息,就大功告成了。
最后,打开你的浏览器,访问 http://localhost:18789。你会看到如下界面:
关键一步来了:为了通过验证,你需要在URL后面加上查询参数 ?token=xxxxxxx,其中的 xxxxxxx 替换成你在 openclaw.json 里配置的那个token。加上之后,就能成功进入控制台了。
至此,OpenClaw服务就已经在你的Windows Docker Desktop环境中稳稳地运行起来了。接下来,你就可以在这个控制台里进行进一步的配置和探索了。



