Windows Docker部署OpenClaw首选教程(亲测可用移植)
OpenClaw近期关注度飙升,我花时间研究了它的Docker化部署方案。最终在Windows上借助WSL2与Docker Desktop搞定——既通过容器文件系统隔离了权限边界,后续迁移到其他平台也只需打包镜像。整个流程不算轻松,但结果可靠。下面把具体步骤和踩坑点拆开细说。
部署前置条件
宿主机必须提前安装WSL2与Docker Desktop。我使用的是4.40.0 (187762)版本。底层环境打好,后续操作才能顺畅推进。
第一步:拉取项目源码
从仓库克隆官方OpenClaw项目。国内网络环境下,建议配置镜像源加速克隆。
git clone https://gitcode.com/GitHub_Trending/cl/openclaw.git
第二步:构建Docker镜像
进入项目根目录,执行以下命令生成名为openclaw:local的镜像:
docker build -t openclaw:local -f Dockerfile .
项目目录里预置了docker-setup.sh脚本。直接运行它,会自动完成镜像构建、.env配置文件生成、容器启动的完整流程。操作方式:打开PowerShell,cd到项目目录,用wsl进入模拟Linux环境,然后执行:
./docker-setup.sh
注意:脚本基于shell编写,必须在WSL模拟的Linux环境中执行。此外,网络波动可能导致执行中断,需要多试几次。
第三步:编辑.env配置文件
打开项目目录下的.env文件,新增四个配置项:
- OPENCLAW_GATEWAY_TOKEN:自定义一个安全令牌值
- OPENCLAW_CONFIG_DIR 与 OPENCLAW_WORKSPACE_DIR:分别映射容器的配置目录和工作目录。容器只能访问这两个路径。后续要处理的文件放入
OPENCLAW_WORKSPACE_DIR即可 - OPENCLAW_IMAGE:设置为刚才构建的镜像名称,即
openclaw:local
第四步:启动容器
在项目目录下,执行以下任意一条命令:
docker compose run --rm openclaw-cli onboard
或者
docker compose up -d openclaw-gateway
前者启动时会要求预先配置模型的技能、钩子等信息;后者直接启动容器,无需预配置。
第五步:修整openclaw.json配置
容器启动后无法正常运行,需要调整配置文件。在OPENCLAW_CONFIG_DIR指定的目录下找到openclaw.json,定位到gateway配置块,添加controlUi.dangerouslyAllowHostHeaderOriginFallback设置:
第六步:解决配对授权问题
配置修改后容器正常运行。浏览器访问http://localhost:18789/,报错:
unauthorized: gateway token mismatch (open the dashboard URL and paste the token in Control UI settings)
打开“概览”界面,在“网格令牌”里填入.env文件中OPENCLAW_GATEWAY_TOKEN的值,点击“连接”后又提示:
pairing required
需要进入容器手动处理。执行命令进入容器:
docker exec -it openclaw-main-openclaw-gateway-1 /bin/bash
然后依次执行:
openclaw devices list
openclaw devices approve
来自第一条命令的输出。执行完毕,错误消失。
第七步:配置模型参数
在容器内执行:
openclaw onboard
这一步重点设置模型相关参数。所有配置完成后即可投入正式使用。
踩坑与应对策略
(1)Ollama配置下的超时问题
实测在Ollama环境下频繁报LLM request timed out.。社区反馈OpenClaw的agent至少需要10 tokens/s的推理速度,低于该阈值极易超时。
(2)tools.profile报错的处理
容器日志中经常出现:
tools.profile (coding) allowlist contains unknown entries (apply_patch, image). These entries won't match any tool unless the plugin is enabled.
直接移除配置文件中tools部分的profile: 'coding'行即可消除该警告。
跨环境迁移
需要迁移时,将项目目录下所有文件连同openclaw:local镜像一并打包。在新环境重复第四步至第七步即可。
镜像导出命令:
docker sa ve -o openclaw.tar openclaw:local
镜像导入命令:
docker load -i openclaw.tar


