Windows下Docker安装OpenClaw & 免费模型配置
🦞参考文档
- https://github.com/openclaw/openclaw#-openclaw--personal-ai-assistant
- https://docs.openclaw.ai/
- https://docs.openclaw.ai/concepts/model-providers#qwen-oauth-free-tier
- https://docs.ollama.com/
- https://docs.z.ai/guides/overview/quick-start
- https://openrouter.ai/docs/quickstart
本文介绍Windows10 + Docker Desktop环境下,OpenClaw源码方式的安装过程,以及免费模型(仅注册,不绑卡,个别需梯)的配置,尽量记录了所有细节和遇到的问题(重新使用新版源码tag v2026.2.9跑了一遍)。
本机或云主机,尤其linux环境直接安装,会简单的多
基础环境准备
Docker Desktop
注意安装Docker Desktop时勾选'Use the WSL 2 based engine'之类的,之前玩Dify时安装的Docker Desktop,具体记不得了,在此不细究了
OpenClaw源码
# 下载源码
## 根据自己的git版本使用合适的命令
## 自行指定需要的分支或tag, 此处为笔者最后一次从头部署选用的tag v2026.2.9
git switch -c v2026.2.9
安装OpenClaw
在源码中我们发现有一个
docker-setup.sh,这其实就是直接的docker build & run相关的脚本,但本地使用Git Bash运行时发现,在openclaw-cli onboard阶段,没有办法选中选项,所以采用了拆解该脚本并使用Power Shell逐步运行的方式。如果可以直接运行,可以跳过本段,查看关注的章节。
1. 官方脚本逻辑解析 (docker-setup.sh)
官方推荐的 docker-setup.sh 实际上执行了以下关键动作:
- 环境检查:确认 Docker 和 Docker Compose 已安装。
- 目录准备:创建配置和工作区持久化目录。
- 配置生成:生成唯一的
OPENCLAW_GATEWAY_TOKEN并写入.env。 - 镜像构建:基于本地
Dockerfile构建openclaw:local。 - 交互引导:运行
openclaw-cli onboard完成初始化。 - 服务启动:拉起
openclaw-gateway容器。
2. Power Shell逐步执行拆解
第一步:构建镜像
# 源码项目目录下执行
docker build -t openclaw:local -f Dockerfile .
第二步:环境初始化
在项目根目录下创建 .env 文件,并设置持久化目录(方便配置管理,避免容器重启丢失诸多信息)。
# 镜像标签,对应脚本中的 $IMAGE_NAME
OPENCLAW_IMAGE=openclaw:local
# 配置文件物理路径,建议使用绝对路径以防 Docker 解析出错
OPENCLAW_CONFIG_DIR=xxx\openclaw\data\config
# AI 工作区物理路径,AI 生成的文件会存在这里
OPENCLAW_WORKSPACE_DIR=xxx\openclaw\data\workspace
# 浏览器访问网关的端口,默认 18789
OPENCLAW_GATEWAY_PORT=18789
# 遗留的旧版协议 桥接端口
# OPENCLAW_BRIDGE_PORT=18790
OPENCLAW_GATEWAY_BIND=lan
# 关键:通信安全 Token,建议用 openssl rand -hex 32 生成,或填入一个长随机串
OPENCLAW_GATEWAY_TOKEN=b02b8387a938bb55990c7b0113799febbdb543c82ab648af6e783e3da54488d6
# 容器内服务共享目录 /home/node 目录持久化(保存全局安装的 npm 包或工具)
OPENCLAW_HOME_VOLUME=openclaw-home
# 指定额外的物理路径挂载
OPENCLAW_EXTRA_MOUNTS=
# 自定义安装额外系统级别依赖包
OPENCLAW_DOCKER_APT_PACKAGES=
在项目根目录下创建 docker-compose.extra.yml 文件(当设置OPENCLAW_HOME_VOLUME或OPENCLAW_EXTRA_MOUNTS时,docker-setup.sh内会生成该文件)
services:
openclaw-gateway:
volumes:
- openclaw_home:/home/node
- xxx\openclaw\data\config:/home/node/.openclaw
- xxx\openclaw\data\workspace:/home/node/.openclaw/workspace
openclaw-cli:
volumes:
- openclaw_home:/home/node
- xxx\openclaw\data\config:/home/node/.openclaw
- xxx\openclaw\data\workspace:/home/node/.openclaw/workspace
volumes:
openclaw_home:
第三步:初始化配置 (Onboarding)
💡 务必注意使用powershell或其他可以在命令窗口选择和确认选项的工具。
在引导中,如果选择Manualmode,建议docken环境下选择:Gateway bind: lan, Auth mode: token。
本例中选用QuickStartmode,后续步骤可根据需求来选择,或者先选择skip now等待以后再设置。
docker compose run --rm openclaw-cli onboard --no-install-daemon
选择结束后,注意观察Control UI或是Dashboard ready部分显示的Web UI (with token)或是Dashboard link (with token):http://127.0.0.1:18789/#token=xxx/
而在之前的版本中(笔者首次使用的v2026.2.3中,这里是没有token的,而且手动粘贴token到地址栏也没有效果,观察源码其之前对链接中的token直接移除,并未设置到浏览器本地缓存导致
disconnected (1008): unauthorized: gateway token mismatch (open the dashboard URL and paste the token in Control UI settings)的web页面提示).
第四步:启动 Gateway 服务
# 直接使用主配置文件启动
# docker compose up -d openclaw-gateway
# 建议方式,利用我们创建的`docker-compose.extra.yml`文件
docker compose -f docker-compose.yml -f docker-compose.extra.yml up -d
第五步:访问Web UI(填写 Token) & 设备配对
笔者当前重新部署的v2026.2.9版本中已无需手动重新查找token并在web页面填写了,直接使用
第三步中看到的带token的地址链接访问即可。 若之前v2026.2.3版本,需从.env文件中配置的持久化目录下找到openclaw.json文件中的gateway.auth.token,复制到web页面中Control栏目下Overview菜单页面Gateway Access卡片中的Gateway Token内容。 不清楚.env中的token还有啥用,docker compose 执行时会带入,没有细究,没做多余测试。
页面正常初次访问后,会有disconnected (1008): pairing required提示,接下来就是首次配对的设置
# 1. 查看请求列表,获取结果中`Pending`部分中的`requestID`
## 可能报错`[openclaw] CLI failed: Error: gateway closed (1008): unauthorized: gateway token mismatch (set gateway.remote.token to match gateway.auth.token)`
## 💡这里之前的版本具体的报错具体记不清楚了,之前尝试直接更改了`openclaw.json`文件中的`gateway.bind`为`lan`、执行`doctor fix`等等...
## 这次的版本改了之后也依旧报错,还有`[openclaw] CLI failed: Error: gateway closed (1008): pairing required`,都是WebSocket Close时异常。
### 后某次重启`docker compose restart openclaw-gateway`后尝试,莫名可以了...,后反复更改`gateway.bind`后重启,依旧都可以。
### 理论`docker compose up`时会带入`.env`运行生效;没做细究,建议可尝试web面多刷新两次,直接容器重启下之类...
docker compose exec openclaw-gateway node dist/index.js devices list
# 2. 批准请求
docker compose exec openclaw-gateway node dist/index.js devices approve <requestID>
配置免费模型
💡 这里介绍的都是经过验证的、官方提供商的、有一定限制的、仅注册登录无需绑卡的免费模型方案,以及一个本地小模型的兜底方案(暂无过多体感),特别推荐
Ollama Cloud及z.ai两个,体感良好,额度较多,较稳定快速
模型配置相关主要的配置文件及部分关键值含义
💡更多、更详细、更严谨需求请参阅官方文档 https://docs.openclaw.ai/
- 主配置文件
openclaw.json- 包含gateway、hooks、agents、messages等配置
- 使用
agents.defaults.model.primary设置默认模型 - 使用
agents.defaults.model.fallbacks设置回退模型,按声明顺序 - 使用
agents.defaults.models设置模型别名,形如:
{ "agents": { "defaults": { "model": { "primary": "ollama-cloud/gpt-oss:120b-cloud", "fallbacks": [ "ollama-cloud/qwen3-coder:480b-cloud", "ollama-cloud/glm-4.6:cloud", "zai/glm-4.7-flash" ] }, "models": { "openrouter/auto": { "alias": "OpenRouter" } } } } - 认证密钥文件
agents\main\agent\auth-profiles.json- 存放模型提供商apikey,形如:
{ "version": 1, "profiles": { "ollama-local:default": { "type": "api_key", "provider": "ollama-local", "key": "ollama-local" } } } - 模型文件
agents\main\agent\models.json- 对于一些特殊(没有直接受OpenClaw支持)的模型提供服务商,在这里配置,形如:
{ "providers": { "ollama-local": { "baseUrl": "http://host.docker.internal:11434/v1", "apiKey": "ollama-local", "api": "openai-completions", "models": [ { "id": "phi4-mini:3.8b", "name": "phi4-mini", "reasoning": false, "input": [ "text" ], "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }, "contextWindow": 200000, "maxTokens": 8192 } ] } } }- 这里主要注意下
api:openai-completions,openai-responses,anthropic-messages
Ollama Local 推荐指数:★★☆☆☆
地址https://ollama.com/,下载即可,可顺带注册登录申请API keys,供Ollama Cloud方案使用
💡 一定要根据自己本地的配置来选择模型;此外选择带有或直接过滤tools标签的模型;之前v2026.2.3版本下了一个,报错not support tools,当前版本未尝试。
# !!! 前提,安装Ollama
# 模型详情页可直接复制对应命令,十分方便
ollama run model_name
💡 也可在openclaw.json直接配置各个项(未尝试,v2026.2.3版本部署时用的这方式,文件两个版本都有这些,但新版默认生成的位置和方式与之前感觉略有差异)
在agents\main\agent\auth-profiles.json文件中profiles标签中添加以下内容(因本地,key随意填写即可):
"ollama-local:default": {
"type": "api_key",
"provider": "ollama-local",
"key": "ollama-local"
}
在agents\main\agent\models.json文件中providers标签中添加以下内容:
"ollama-local": {
"baseUrl": "http://host.docker.internal:11434/v1",
"apiKey": "ollama-local",
"api": "openai-completions",
"models": [
{
"id": "phi4-mini:3.8b",
"name": "phi4-mini",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 200000,
"maxTokens": 8192
}
]
}
Ollama Cloud 推荐指数:★★★★★
地址https://ollama.com/,注册登录申请API keys即可
💡 此处采用的是调用本地Ollama服务接口访问云端模型,记得需要运行下云端模型或者本地Ollama软件使用云端模型随便对话一次
在agents\main\agent\auth-profiles.json文件中profiles标签中添加以下内容:
"ollama-cloud:default": {
"type": "api_key",
"provider": "ollama-cloud",
"key": "// 此处填写申请的API keys"
}
在agents\main\agent\models.json文件中providers标签中添加以下内容:
"ollama-cloud": {
"baseUrl": "http://host.docker.internal:11434/v1",
"apiKey": "ollama-cloud",
"api": "openai-completions",
"models": [
{
"id": "qwen3-coder:480b-cloud",
"name": "Qwen3-Coder 480B",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 200000,
"maxTokens": 8192
},
{
"id": "gpt-oss:120b-cloud",
"name": "gpt-oss 120B",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 200000,
"maxTokens": 8192
}
]
}
Qwen 推荐指数:★★★★☆
参考https://docs.openclaw.ai/providers/qwen,提供了两款免费模型:qwen-portal/coder-model和qwen-portal/vision-model;文档介绍是2,000 requests/day,但笔者之前感受貌似不够这个量
# 启用qwen认证插件
docker compose run --rm openclaw-cli plugins enable qwen-portal-auth
# Restart the Gateway after enabling
docker compose restart openclaw-gateway
# 执行后会显示Qwen OAuth,打开里边的链接进行认证
docker compose run --rm openclaw-cli models auth login --provider qwen-portal --set-default
# 设置模型 提供了两个模型,到`agents\main\agent\models.json`或`openclaw.json`(之前v2026.2.3貌似先写这里,后同步到前一个文件)中查看
docker compose run --rm openclaw-cli models set qwen-portal/coder-model
z.ai 推荐指数:★★★★★
地址https://docs.z.ai/guides/overview/quick-start,注册登录申请API Keys即可
💡 这是最简单的一种,同openrouter等这些受OpenClaw支持的AI提供商一样配置简单
在agents\main\agent\auth-profiles.json文件中profiles标签中添加以下内容即可:
"zai:default": {
"type": "api_key",
"provider": "zai",
"key": "// your API Keys"
}
OpenRouter 推荐指数:★★☆☆☆
地址https://openrouter.ai/,注册登录申请API Keys即可
💡 这是最简单的一种,同z.ai等这些受OpenClaw支持的AI提供商一样
在agents\main\agent\auth-profiles.json文件中profiles标签中添加以下内容即可:
"openrouter:default": {
"type": "api_key",
"provider": "openrouter",
"key": "// your API Keys"
}
其他模型
siliconflow
调用付费模型DeepSeep-V3正常,但免费模型没有测试成功,在session文件下的对话文件中看到,报'400 status code (no body)'之类的提示
kimi / moonshot
看到相关的"免费"报道,奔着它来的,反正没用上。。。
nvidia
其他感觉够用,看到有说不咋样,就没去尝试了,肤浅了肤浅了
groq、together、 hugging face...
要么已无免费,要么需要绑卡,没有去尝试了
