ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OpenClaw从入门到应用——安装:Docker 容器化部署与 TaoToken 接入配置

OpenClaw从入门到应用——安装:Docker 容器化部署与 TaoToken 接入配置 1. 为什么我建议你用 Docker 跑 OpenClawOpenClaw 是一个把大模型能力接到本地工具链上的网关型项目你可以把它理解成一个“AI 工具调度中心”它负责管理会话、转发模型请求、执行文件读写和命令调用再通过一个本地控制台把结果展示出来。适合谁适合想快速搭一套可复现 AI 运行环境、又不想把宿主机搞脏的开发者。而 Docker 容器化部署正好解决三个痛点环境隔离、随时丢弃重建、跨机器复制。我试过直接在宿主机裸装 OpenClaw依赖 Node 版本、pnpm、Playwright 浏览器、系统库一旦版本冲突排查起来很烦。换成 Docker 之后镜像里锁死 node:24-bookworm配置目录和工作区通过绑定挂载持久化容器本身可以随时删掉重来。更关键的是OpenClaw 的代理沙箱本身就依赖 Docker如果你打算用沙箱隔离工具执行那容器化几乎是必选项。这篇内容聚焦两件事一是用 Docker Compose 把 OpenClaw 网关跑起来二是把模型请求统一走 TaoToken 的 Key/API 通道写进 config.toml。全程给可复制的命令和配置片段最后用健康检查命令验证连通性。你不需要提前懂 OpenClaw 内部结构跟着敲就行。需要提前说明的是Docker 方案适合“要隔离、要可复现、要在没有本地安装的主机上运行”的场景如果你只是在自己电脑上做最快迭代裸装反而更省事。选之前先想清楚这一点。2. 前置准备Docker 环境与 TaoToken 通道2.1 Docker 与资源要求先确认本机有 Docker Engine 或 Docker Desktop并且 Compose 是 v2命令是docker compose而不是老的docker-compose。内存建议至少 2 GB 用于镜像构建因为pnpm install在 1 GB 内存主机上可能被 OOM 杀掉退出码是 137。磁盘也要留够镜像加日志增长不慢。docker --version docker compose version如果第二条报错说明 Compose v2 没装好先补上再继续。2.2 为什么模型通道选 TaoTokenOpenClaw 本身不绑定某一家模型服务它通过配置里的 provider 去请求。TaoToken 提供统一的 Key 和 API 通道你只需要在配置里填一个 base URL 和一个 Key就能把模型对话、编码类请求都走同一条链路省去在多个平台之间来回切换的麻烦。对容器化部署来说这点很重要容器里不需要装各家 SDK配置集中在一个文件里重建容器时复制配置即可。TaoToken 官网地址是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 入口是 https://taotoken.net/api 。你需要先去控制台创建一个 API Key后面写进 config.toml。创建 Key 的入口在 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。注意Key 属于敏感信息不要提交到 Git 仓库。容器化场景建议用环境变量注入或者把 config.toml 放在宿主机挂载目录里并限制权限。2.3 目录规划OpenClaw 的 Compose 配置默认把配置和工作区写到宿主机~/.openclaw/和~/.openclaw/workspace。我建议你提前建好目录避免权限问题mkdir -p ~/.openclaw ~/.openclaw/workspace镜像以 node 用户uid 1000运行如果挂载目录属主不对后面会出现 EACCES 权限错误。Linux 主机上先改属主sudo chown -R 1000:1000 ~/.openclaw3. 可复制配置Compose 骨架与 config.toml3.1 快速启动脚本OpenClaw 仓库根目录提供了一个docker-setup.sh它会构建网关镜像、跑入门向导、生成网关令牌并写入.env然后用 Compose 启动网关。从仓库根目录执行./docker-setup.sh如果你想跳过本地构建、直接用预构建镜像先设置镜像名再跑脚本export OPENCLAW_IMAGEghcr.io/openclaw/openclaw:latest ./docker-setup.sh脚本检测到OPENCLAW_IMAGE不是默认的openclaw:local就会执行docker pull而不是docker build。其余步骤入门、启动、令牌生成完全一样。3.2 手动 Compose 流程不想用脚本的话手动三步也能起来。注意所有docker compose命令都要在仓库根目录执行因为它依赖本地的docker-compose.ymldocker build -t openclaw:local -f Dockerfile . docker compose run --rm openclaw-cli onboard docker compose up -d openclaw-gateway如果你启用了OPENCLAW_EXTRA_MOUNTS或OPENCLAW_HOME_VOLUME脚本会生成docker-compose.extra.yml这时 Compose 命令要带上它docker compose -f docker-compose.yml -f docker-compose.extra.yml up -d3.3 把 TaoToken 写进 config.toml容器启动后配置文件在宿主机~/.openclaw/config.toml对应容器内/home/node/.openclaw/config.toml。下面是一个把模型请求指向 TaoToken 通道的片段字段名按你实际使用的 provider 结构填核心是 base URL 和 Key# ~/.openclaw/config.toml [gateway] mode local bind lan [providers.taotoken] type openai-compatible base_url https://taotoken.net/api api_key sk-你的TaoToken密钥 default_model 你的模型名 [agents.defaults] provider taotoken几个要点gateway.bind用绑定模式值lan/loopback不要写0.0.0.0或localhost这种主机别名这是 OpenClaw 的约定。base_url用 API 入口https://taotoken.net/api不要带 UTM 参数。api_key建议改成从环境变量读取避免明文躺在文件里。改完配置后重启网关让配置生效docker compose restart openclaw-gateway3.4 沙箱隔离的可选配置如果你想让非主会话的工具执行跑在独立容器里开启代理沙箱。在config.toml里加[agents.defaults.sandbox] mode non-main scope agent workspaceAccess none [agents.defaults.sandbox.docker] image openclaw-sandbox:bookworm-slim network none readOnlyRoot true memory 1g cpus 1沙箱镜像需要单独构建scripts/sandbox-setup.shnetwork none表示沙箱默认无出站流量需要联网时再显式放开。scope agent是每个代理一个容器加工作区隔离性比shared好后者会禁用跨会话隔离慎用。4. 验证请求健康检查与连通性测试4.1 打开控制台网关起来后浏览器访问 http://127.0.0.1:18789/ 把令牌粘贴进控制 UI设置 → 令牌。忘了 URL 的话用这条命令重新拿docker compose run --rm openclaw-cli dashboard --no-open4.2 容器探针OpenClaw 镜像内置了健康检查后台会 ping/healthz。你也可以手动验证curl -fsS http://127.0.0.1:18789/healthz curl -fsS http://127.0.0.1:18789/readyz/healthz是浅层存活探针检测网关进程是否在跑/readyz在启动宽限期内保持就绪之后只有必需渠道未连接或断开才返回 503。别名/health和/ready同样可用。4.3 带鉴权的深度健康快照想看网关加渠道的完整状态用 CLI 容器执行docker compose exec openclaw-gateway node dist/index.js health --token $OPENCLAW_GATEWAY_TOKEN4.4 验证模型通道是否通最直接的验证是发一条模型请求。用 CLI 容器跑一次探测docker compose run -T --rm openclaw-cli gateway probe-T用于禁用 Compose 伪终端分配适合脚本和 CI 环境避免 TTY 噪音。如果返回正常说明网关和 provider 通道都通了。想进一步确认模型对话效果可以打开模型对话页面 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 对照测试。4.5 设备配对如果控制台提示“未授权”或“已断开连接 (1008): 需要配对”按下面三步走docker compose run --rm openclaw-cli dashboard --no-open docker compose run --rm openclaw-cli devices list docker compose run --rm openclaw-cli devices approve5. 本篇常见错排查5.1 构建时退出码 137这是 OOM 被杀的典型信号。pnpm install在 1 GB 内存主机上容易触发。解决办法是给 Docker 分配至少 2 GB 内存或者改用预构建镜像跳过本地构建export OPENCLAW_IMAGEghcr.io/openclaw/openclaw:latest ./docker-setup.sh5.2 权限错误 EACCES镜像以 uid 1000 的 node 用户运行。如果/home/node/.openclaw报权限错误检查宿主机挂载目录属主sudo chown -R 1000:1000 ~/.openclaw5.3 重复出现 pairing required如果 CLI 命令里看到Gateway target: ws://172.x.x.x:18789或反复要求配对通常是绑定模式不对。执行docker compose run --rm openclaw-cli config set gateway.mode local docker compose run --rm openclaw-cli config set gateway.bind lan docker compose run --rm openclaw-cli devices list --url ws://127.0.0.1:187895.4 沙箱容器起不来先确认沙箱镜像存在没有就用scripts/sandbox-setup.sh构建或者在配置里显式指定agents.defaults.sandbox.docker.image。沙箱里的权限错误把docker.user设成与挂载工作区属主一致的 UID:GID。找不到自定义工具是因为 OpenClaw 用sh -lc登录 shell 执行命令会加载/etc/profile并可能重置 PATH用docker.env.PATH把自定义路径加回去。5.5 模型请求 401 或超时先确认config.toml里base_url是https://taotoken.net/api没有多余斜杠或 UTM 参数再确认 Key 没有过期、没有多余空格。容器内网络如果被限制检查沙箱的network设置是否误设成了none导致出站被挡。改完配置记得docker compose restart openclaw-gateway。6. 后续怎么走按场景选入口到这里OpenClaw 的 Docker 容器化部署和 TaoToken 通道接入就跑通了。接下来按你的实际场景选下一步如果你在排查接入问题、需要重新生成或管理 Key去 API Keys 页面 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 配合接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 对照字段如果你只是想先验证模型对话效果直接开模型对话 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 试几条如果你打算长期跑编码类任务或 Agent 工作流Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 更适合按量长期用。最后留一个我踩过的坑容器重建后如果发现配置没生效先确认你改的是宿主机~/.openclaw/config.toml而不是容器内路径绑定挂载的方向别搞反。另外docker-compose.extra.yml是脚本生成的别手动编辑改了OPENCLAW_EXTRA_MOUNTS就重跑docker-setup.sh重新生成。
返回列表