尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

一文教你用 Docker 部署 OpenClaw 并接入 TaoToken 调用本地 Qwen3.5 9B 模型

发布时间:2026/9/27 18:01:09

资讯中心
01
ARTICLE

一文教你用 Docker 部署 OpenClaw 并接入 TaoToken 调用本地 Qwen3.5 9B 模型

一文教你用 Docker 部署 OpenClaw 并接入 TaoToken 调用本地 Qwen3.5 9B 模型
1. 为什么要在 Docker 里跑 OpenClaw 本地 Qwen3.5 9B如果你正在找一套「本地模型 容器化 Agent 框架」的组合方案OpenClaw 加 Ollama 加 Qwen3.5 9B 是最近被问得比较多的一条链路。OpenClaw 是一个可以容器化运行的 Agent 网关提供 Web UI、工作区挂载和工具调用能力Ollama 负责在本地把 Qwen3.5 9B 这类模型跑起来TaoToken 则作为统一的 Key 与 API 通道把本地推理和外部模型调用收敛到一套凭证体系里。适合谁适合手上有 NVIDIA 显卡、想在自己机器上做本地推理验证、又不想把配置散落在多个工具里的开发者。我这次的环境是 Ubuntu 24.04.2 LTS显卡 16GB 显存驱动 535 以上内存 32GB磁盘预留 40GB。整套流程分三段先用 Docker 起 Ollama 并拉取 qwen3.5:9b-q8_0再用 docker-compose 起 OpenClaw 并写好 config.toml最后用一次对话请求验证本地推理和 TaoToken 通道是否都通。下面每一步都给可复制的命令和配置骨架你照着改路径就能跑。2. 前置准备Docker、GPU 运行时与 TaoToken Key2.1 确认 Docker 与 NVIDIA 容器运行时先确认 Docker 在docker -v如果没有输出用官方脚本装curl -fsSL https://get.docker.com | sh sudo systemctl start docker sudo systemctl enable dockerGPU 能不能被容器用取决于 NVIDIA Container Toolkit。先看驱动nvidia-smi能看到驱动版本和显卡型号就说明驱动没问题。然后确认容器运行时docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi如果这条命令报could not select device driver with capabilities: [[gpu]]说明 toolkit 没配好需要先按 NVIDIA 官方文档把nvidia-container-toolkit装好并重启 Docker。这一步不通过后面 Ollama 用不上 GPUQwen3.5 9B 会退化到 CPU 推理速度差一个量级。2.2 拿 TaoToken Key 与确认接入地址TaoToken 在这里的角色是统一 Key 和 API 通道。你需要在控制台创建一个 API Key然后把它写进 OpenClaw 的 config.toml。入口在这里控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_docker_qwenAPI Keys 管理https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_docker_qwen接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_docker_qwenAPI 基地址统一用https://taotoken.net/api不要加 UTM 参数。Key 形如sk-开头的一串字符创建后只显示一次先复制到安全的地方。如果你后面还要跑长期编码或 Agent 任务可以顺带看一下 Coding Plan 页面把额度规划清楚Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_docker_qwen3. 可复制配置docker-compose 起 Ollama 与 OpenClaw3.1 目录结构与 docker-compose.yml我习惯把两个服务放在同一个 compose 文件里网络用默认 bridgeOllama 暴露 11434OpenClaw 暴露 18789。先建目录mkdir -p ~/openclaw-stack cd ~/openclaw-stack然后写docker-compose.ymlservices: ollama: image: ollama/ollama:latest container_name: ollama restart: always ports: - 11434:11434 volumes: - ollama-data:/root/.ollama deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu] openclaw: image: ghcr.io/openclaw/openclaw:latest container_name: openclaw restart: unless-stopped user: root network_mode: host volumes: - openclaw-data:/root/.openclaw - ./workspace:/root/.openclaw/workspace - ./config.toml:/root/.openclaw/config.toml - /var/run/docker.sock:/var/run/docker.sock depends_on: - ollama volumes: ollama-data: openclaw-data:几个关键点说明一下。deploy.resources.reservations.devices是 compose 里启用 GPU 的写法等价于--gpus all。OpenClaw 用network_mode: host这样它访问 Ollama 可以直接写127.0.0.1:11434不用去猜容器 IP。/var/run/docker.sock挂进去是为了让 OpenClaw 能调用宿主机 Docker有安全风险只建议在你自己信任的本机用。3.2 config.toml 骨架把本地 Ollama 和 TaoToken 都写进去在~/openclaw-stack下建config.toml[gateway] bind 0.0.0.0:18789 auth_token 换成你自己的GatewayToken [[providers]] id ollama type openai-compatible base_url http://127.0.0.1:11434/v1 api_key sk-local-no-auth default_model qwen3.5:9b-q8_0 [[providers]] id taotoken type openai-compatible base_url https://taotoken.net/api api_key sk-你的TaoTokenKey default_model qwen3.5-9b [workspace] path /root/.openclaw/workspace这里有两个 provider。ollama指向本地 11434api_key随便填因为本地 Ollama 默认不鉴权。taotoken指向https://taotoken.net/apiKey 换成你在控制台创建的那一串。default_model先按占位写实际模型名以ollama list输出为准。Gateway 的auth_token就是 Web UI 登录口令自己设一个足够长的字符串。3.3 拉取 Qwen3.5 9B 并确认模型名compose 起来之后模型要在 Ollama 容器里拉docker compose up -d ollama docker exec -it ollama ollama pull qwen3.5:9b-q8_0拉完确认docker exec -it ollama ollama list输出里会有一行类似qwen3.5:9b-q8_0的名字把它原样填回 config.toml 的default_model。如果拉取时报模型不存在先升级镜像再重试docker pull ollama/ollama:latest docker compose up -d --force-recreate ollama数据卷ollama-data会保留模型不会丢。4. 验证请求一次对话打通本地推理与 TaoToken 通道4.1 先验证 Ollama 本地推理在起 OpenClaw 之前先单独确认 Ollama 能出结果curl http://127.0.0.1:11434/v1/chat/completions \ -H Content-Type: application/json \ -d { model: qwen3.5:9b-q8_0, messages: [{role: user, content: 用一句话说明你是什么模型}] }返回 JSON 里有choices[0].message.content就说明本地推理通了。同时开另一个终端跑watch -n 1 nvidia-smi发请求时应该能看到显存占用上涨、GPU 利用率有波动。如果显存没变化多半是 GPU 没被容器用上回到 2.1 检查 toolkit。4.2 再验证 TaoToken 通道用同一个 OpenAI 兼容格式打 TaoTokencurl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的TaoTokenKey \ -H Content-Type: application/json \ -d { model: qwen3.5-9b, messages: [{role: user, content: 回复 ok 即可}] }返回正常就说明 Key 和通道都没问题。如果这里报 401检查 Key 是否复制完整报 404 检查模型名是否在 TaoToken 支持的列表里。模型对话的在线验证入口在这里可以对照着看返回结构模型对话https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_docker_qwen4.3 起 OpenClaw 并在 Web UI 里发消息两条通道都通之后把 OpenClaw 拉起来docker compose up -d openclaw docker logs -f openclaw日志里出现 gateway 监听 18789 就绪后浏览器打开http://127.0.0.1:18789填入 config.toml 里的auth_token。进入对话界面后provider 选ollama模型选qwen3.5:9b-q8_0发一条消息。能收到回复同时nvidia-smi有占用就说明「OpenClaw → Ollama → Qwen3.5 9B」这条本地链路完整打通。再把 provider 切到taotoken发同样的消息验证统一 Key 通道也通。5. 本篇常见错排查5.1 端口 11434 被系统服务版 Ollama 抢占如果你之前用systemctl装过 Ollama它会直接占用 11434导致 Docker 版映射失败或请求打到错误的服务上。先停掉sudo systemctl stop ollama sudo systemctl disable ollama提示Unit ollama.service not found说明没装过忽略即可。5.2 在宿主机直接跑 ollama pull 报 command not foundDocker 版 Ollama 的命令行在容器里宿主机没有ollama这个命令。所有 pull、list、run 都要加docker exec -it ollama前缀。除非你额外在宿主机装了 Ollama CLI否则别直接在宿主机敲。5.3 OpenClaw 报 EACCES 或 Web UI 校验失败典型原因是 configure 和 run 用了不同用户。root 的配置目录是/root/.openclaw非 root 的 node 用户是/home/node/.openclaw。compose 里我统一写了user: root挂载也按/root/.openclaw来保持一致就不会出这个问题。如果你改成 node 用户挂载路径和 config.toml 位置都要同步改。5.4 Web UI 报 No API key found for provider这个报错通常出现在 provider 的id和 config.toml 里引用的名字对不上。检查[[providers]]下的id是否写成了ollama以及 Web UI 里选的 provider 是否和它一致。名字拼错、大小写不一致都会触发。5.5 模型名写错导致 404default_model必须和ollama list输出的名字完全一致包括:9b-q8_0这种 tag。少写 tag 或写成qwen3.5:9b都可能找不到。改完 config.toml 后重启 OpenClawdocker compose restart openclaw6. 后续怎么用把本地推理和统一通道固定下来这套配置跑通之后日常使用就是docker compose up -d起服务Web UI 里切 provider 做本地或通道调用。如果你后面要跑长期编码任务或 Agent 工作流建议把 Coding Plan 的额度规划一下避免本地和通道两边混着用导致 Key 管理混乱Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_docker_qwen接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_docker_qwen一个实用技巧把config.toml里的auth_token和 TaoToken Key 用环境变量注入别硬编码在文件里compose 里加env_file就行。这样换机器或分享配置时不会泄露凭证。另外ollama-data和openclaw-data两个卷定期备份模型和配置都能快速恢复。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。