
1. 为什么我建议你用 Docker 跑 OpenClawOpenClaw 是一个能直接操作你本地文件、执行命令的 AI Agent 框架说白了就是给大模型装上手和脚让它帮你干活。但正因为权限太大直接裸装在宿主机上风险不小——它默认以当前用户身份运行你有什么权限它有什么权限误删文件这种事不是没发生过。所以用 Docker 把它关进容器里是目前最稳妥的体验方式。这篇教程面向的是完全没碰过 OpenClaw 的新手我会从 docker-compose.yml 怎么写、config.toml 配置骨架怎么搭一路讲到容器起来之后怎么验证 API 通道是通的。中间会接入 TaoToken 的统一 Key这样你就不用为了不同模型到处注册账号、管理一堆 API Key 了。整套流程在 Windows Docker Desktop 和 Linux 上都能跑命令我会写清楚你跟着敲就行。我试过在没配 config.toml 的情况下直接 docker run结果容器起来了但网关一直连不上模型日志里全是超时。后来才发现是配置文件缺了关键字段。所以这篇会把配置骨架完整给你省得你踩同样的坑。2. 部署前先把 TaoToken 的 Key 拿到手OpenClaw 本身不带模型能力它需要调用外部大模型的 API。TaoToken 在这里的角色是一个统一接入层——你只需要一个 Key就能调用它支持的多种模型不用每个厂商单独去注册、单独去充钱。具体操作打开 https://taotoken.net/api-keys 注册登录后创建一个 API Key复制出来存好。这个 Key 后面要填进 config.toml 里。TaoToken 的 API 端点地址是 https://taotoken.net/api 这个地址在配置里会用到。注意 API 地址后面不加任何路径后缀OpenClaw 会自己拼接。如果你后面想长期跑编码任务或者 Agent 工作流可以了解一下 Coding Plan它针对高频调用场景做了额度优化。只是想先跑通验证的话用按量计费的 Key 就够了。注意API Key 只显示一次创建后立刻复制保存。丢了只能重新生成。3. 可复制的 docker-compose.yml 与 config.toml 骨架3.1 目录结构先规划好在你想放项目的地方建一个文件夹比如openclaw-docker里面结构如下openclaw-docker/ ├── docker-compose.yml ├── config/ │ └── config.toml └── data/data目录用来持久化容器里的数据这样你重启容器不会丢配置。3.2 docker-compose.ymlversion: 3.8 services: openclaw: image: openclaw/openclaw:latest container_name: openclaw restart: unless-stopped ports: - 18789:18789 volumes: - ./config/config.toml:/app/config.toml - ./data:/app/data environment: - TZAsia/Shanghai healthcheck: test: [CMD, curl, -f, http://localhost:18789/health] interval: 30s timeout: 10s retries: 3端口 18789 是 OpenClaw 网关的默认端口映射到宿主机同端口方便你本地访问。volumes 把 config.toml 挂进去改配置不用重建镜像。3.3 config.toml 配置骨架[gateway] host 0.0.0.0 port 18789 auth_token 你自己生成一个随机字符串 [model] provider openai-compatible base_url https://taotoken.net/api api_key 你的TaoToken API Key model_name gpt-4o max_tokens 4096 temperature 0.7 [agent] workspace /app/data/workspace allowed_commands [ls, cat, grep, find, curl] max_iterations 20 [logging] level info file /app/data/openclaw.log几个关键点说明一下。auth_token是你自己设的网关鉴权令牌随便生成一串够复杂的字符串就行后面访问控制台要用。base_url填 TaoToken 的 API 地址api_key填你刚才创建的那个 Key。model_name可以换成 TaoToken 支持的其他模型名。allowed_commands是白名单机制只允许 Agent 执行列表里的命令。这是安全兜底别偷懒全放开。4. 启动容器并验证 API 通道连通性4.1 启动在openclaw-docker目录下执行docker compose up -d第一次会拉镜像等几分钟。起来之后用docker compose logs -f openclaw看日志看到类似Gateway listening on 0.0.0.0:18789就说明网关起来了。4.2 验证网关本身curl -s http://localhost:18789/health返回{status:ok}就说明网关进程正常。4.3 验证模型 API 通道这一步是重点很多人容器起来了但模型调不通。用下面这个命令直接测curl -s -X POST http://localhost:18789/v1/chat/completions \ -H Authorization: Bearer 你的auth_token \ -H Content-Type: application/json \ -d { model: gpt-4o, messages: [{role: user, content: 回复一个字好}] }如果返回里包含模型生成的文字内容说明从 OpenClaw 到 TaoToken 再到模型的整条链路是通的。如果报 401检查 auth_token 对不对如果报超时或者连接错误检查 base_url 和 api_key。4.4 进容器里直接测有时候网关层没问题但容器内部 DNS 或网络有状况可以进容器直接 curldocker compose exec openclaw curl -s https://taotoken.net/api/models \ -H Authorization: Bearer 你的TaoToken_API_Key能返回模型列表就说明容器出网正常。5. 部署过程中最容易卡住的几个地方5.1 容器起来了但控制台打不开先确认端口映射对不对docker compose ps看 PORTS 列有没有0.0.0.0:18789-18789/tcp。如果没有检查 docker-compose.yml 里 ports 写没写错。另外 Windows 上如果 18789 被其他程序占了换成 18790 之类的再试。5.2 模型调用一直超时最常见的原因是 config.toml 里 base_url 写错了。注意是https://taotoken.net/api不要在后面加/v1或者/chat/completionsOpenClaw 会自己拼。另外确认 api_key 没有多余空格复制的时候容易带上换行。5.3 auth_token 没设或者太简单config.toml 里auth_token如果留空网关会拒绝所有请求。随便生成一个 32 位以上的随机字符串填进去。改完配置后要docker compose restart openclaw才生效。5.4 日志里出现 permission denied这是容器内进程对挂载目录没写权限。Linux 上执行sudo chown -R 1000:1000 ./data把 data 目录属主改成容器内用户。Windows 上一般不会有这个问题但如果用了 WSL2 挂载 Windows 目录建议把项目放在 WSL2 的文件系统里而不是/mnt/c下面。5.5 想换模型但不知道填什么名字访问 https://taotoken.net/api/models 用你的 Key 查一下支持的模型列表把model_name换成列表里的值就行。改完重启容器。6. 跑通之后下一步做什么部署链路通了之后你可以打开浏览器访问http://localhost:18789用 config.toml 里设的 auth_token 登录控制台直接和模型对话测试。如果后面想把它接到编码工作流里比如让 Agent 帮你改代码、跑测试可以看看 Coding Plan 的额度方案比按量计费更适合高频场景。配置上想加更多能力比如接入不同的模型提供商、调整 Agent 的迭代次数上限改 config.toml 对应字段然后 restart 就行。完整的配置项说明在 https://taotoken.net/doc 里有遇到不确定的字段先去查一下再改别凭感觉填。整套流程走下来最花时间的其实是等镜像拉取和排查网络问题。配置本身不复杂关键是 base_url 和 api_key 这两个地方别写错。跑通一次之后后面再部署就是复制粘贴的事了。