news 2026/5/29 22:45:51

Clawdbot部署教程:Qwen3:32B与Clawdbot共用Docker网络及端口映射配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Clawdbot部署教程:Qwen3:32B与Clawdbot共用Docker网络及端口映射配置

Clawdbot部署教程:Qwen3:32B与Clawdbot共用Docker网络及端口映射配置

1. 为什么需要共用Docker网络和端口映射

Clawdbot作为AI代理网关与管理平台,本身不直接运行大模型,而是通过API调用后端模型服务。当你在本地部署了Qwen3:32B模型(通过Ollama),Clawdbot需要能稳定、低延迟地访问这个服务。如果两者运行在独立的Docker容器中,默认是隔离网络,Clawdbot容器根本无法通过http://127.0.0.1:11434访问到Ollama服务——因为对Clawdbot容器来说,“localhost”指的是它自己,而不是宿主机。

很多新手会卡在这一步:明明Ollama在宿主机上跑得好好的,curl http://localhost:11434/api/tags能返回模型列表,但Clawdbot配置里填了http://127.0.0.1:11434/v1却一直报错“Connection refused”。这不是Clawdbot的问题,也不是Ollama没启动,而是典型的容器网络通信误解

解决这个问题的核心思路就两个:要么让Clawdbot容器能访问宿主机的Ollama服务(通过特殊网络模式),要么让Ollama也跑在Docker里,并和Clawdbot放在同一个自定义网络中——后者更规范、更可控,也更适合生产环境。本教程采用第二种方式,手把手带你完成从零开始的双容器协同部署。

2. 环境准备与基础依赖安装

2.1 确认系统要求

  • 操作系统:Ubuntu 22.04 LTS 或 CentOS 8+(推荐 Ubuntu,文档适配最完善)
  • 硬件:至少24GB GPU显存(Qwen3:32B最低要求),CPU 8核,内存32GB+
  • 软件:Docker 24.0+、Docker Compose v2.20+、NVIDIA Container Toolkit(已配置GPU支持)

注意:如果你还没装好NVIDIA驱动和nvidia-docker,请先执行nvidia-smi确认驱动正常,再按官方指南配置runtime。本文默认你已具备GPU容器运行能力。

2.2 创建项目目录并初始化配置文件

我们不使用clawdbot onboard一键脚本,因为它默认走单机模式,无法精细控制网络。我们要手动构建可复用的部署结构:

mkdir -p ~/clawdbot-qwen3 && cd ~/clawdbot-qwen3

创建docker-compose.yml,这是整个协同部署的核心:

# docker-compose.yml version: '3.8' services: # Ollama服务:运行Qwen3:32B模型 ollama: image: ollama/ollama:latest container_name: ollama-qwen3 restart: unless-stopped ports: - "11434:11434" volumes: - ./ollama_models:/root/.ollama/models - ./ollama_logs:/var/log/ollama environment: - OLLAMA_HOST=0.0.0.0:11434 - OLLAMA_ORIGINS=http://clawdbot:3000,http://localhost:3000 networks: - clawdbot-net deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] # Clawdbot服务:AI代理网关与管理平台 clawdbot: image: ghcr.io/clawdbot/clawdbot:latest container_name: clawdbot-main restart: unless-stopped ports: - "3000:3000" volumes: - ./config:/app/config - ./data:/app/data environment: - NODE_ENV=production - CLAWDBOT_PORT=3000 - CLAWDBOT_HOST=0.0.0.0 - CLAWDBOT_TOKEN=csdn depends_on: - ollama networks: - clawdbot-net # 关键:让Clawdbot能调用ollama服务,必须在同一网络下 # 容器内可通过服务名"ollama"直接访问,无需IP networks: clawdbot-net: driver: bridge ipam: config: - subnet: 172.20.0.0/16

这个配置做了几件关键事:

  • 定义了一个名为clawdbot-net的自定义桥接网络,两个容器都接入其中;
  • Ollama容器暴露端口11434,Clawdbot容器暴露端口3000
  • Clawdbot通过depends_on声明依赖Ollama,确保启动顺序;
  • 最重要的是:Clawdbot容器内部可以直接用http://ollama:11434/v1访问Ollama API——因为Docker内置DNS会把服务名ollama解析为该容器在clawdbot-net中的IP。

2.3 初始化Clawdbot配置文件

Clawdbot需要一个config.json来告诉它后端模型在哪。在项目根目录下创建config文件夹,并写入config/config.json

{ "models": [ { "id": "qwen3:32b", "name": "Local Qwen3 32B", "baseUrl": "http://ollama:11434/v1", "apiKey": "ollama", "api": "openai-completions", "reasoning": false, "input": ["text"], "contextWindow": 32000, "maxTokens": 4096, "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 } } ], "defaultModel": "qwen3:32b", "token": "csdn" }

注意这里baseUrl不再是http://127.0.0.1:11434/v1,而是http://ollama:11434/v1——这是容器间通信的正确写法。

3. 部署与启动全流程

3.1 拉取镜像并首次加载Qwen3:32B模型

别急着docker-compose up。Ollama容器启动后,需要先手动加载模型,否则Clawdbot一上来就调用会失败。

# 启动Ollama容器(后台运行) docker-compose up -d ollama # 等待10秒让Ollama服务就绪 sleep 10 # 进入Ollama容器,拉取并运行Qwen3:32B docker exec -it ollama-qwen3 ollama run qwen3:32b # 第一次运行会下载约20GB模型文件,耗时较长,请耐心等待 # 下载完成后,你会看到类似这样的输出: # >>> Running qwen3:32b # >>> Loading model... # >>> Model loaded in 12.4s

小技巧:如果你网络慢,可以提前在宿主机用ollama pull qwen3:32b下载好,再启动容器。Ollama会自动复用已下载的模型文件。

3.2 启动Clawdbot并验证连通性

现在启动全部服务:

docker-compose up -d

查看状态:

docker-compose ps

你应该看到两个服务都是Up状态。接着验证Clawdbot是否能成功调用Ollama:

# 进入Clawdbot容器 docker exec -it clawdbot-main sh # 在容器内测试Ollama连通性(Ctrl+D退出) curl -X POST http://ollama:11434/api/chat \ -H "Content-Type: application/json" \ -d '{ "model": "qwen3:32b", "messages": [{"role": "user", "content": "你好,请用中文简单介绍你自己"}], "stream": false }'

如果返回了JSON格式的响应(包含message.content字段),说明网络打通成功
如果报Failed to connect,请检查:

  • docker-compose psollama是否健康;
  • docker logs ollama-qwen3是否有启动错误;
  • docker network inspect clawdbot-net是否两个容器都在该网络中。

3.3 访问Web界面并完成Token配置

打开浏览器,访问:

http://localhost:3000/?token=csdn

注意:必须带?token=csdn,这是Clawdbot的管理令牌,和你在config.json中设置的一致。没有这个token,你会看到“unauthorized: gateway token missing”的错误提示。

首次进入后,你会看到Clawdbot的控制台界面。点击左上角Settings → Models,确认Local Qwen3 32B已显示为“Online”,状态灯为绿色。

现在你可以直接在聊天窗口输入问题,比如:“用Python写一个快速排序函数”,Clawdbot会将请求转发给Ollama容器中的Qwen3:32B模型,并把结果返回给你——整个链路完全走Docker内部网络,毫秒级延迟,稳定不掉线。

4. 关键配置详解与常见问题排查

4.1 端口映射的三种模式对比

模式写法适用场景是否推荐
11434:11434宿主机端口 ↔ 容器端口需要从宿主机或外部调试Ollama推荐(方便curl测试)
11434仅容器端口,不映射到宿主机纯内部调用,完全隔离可行但不便于排障
127.0.0.1:11434:11434仅绑定到本地回环宿主机可访问,但其他机器不可见生产推荐(更安全)

我们在docker-compose.yml中用了第一种,方便你随时用curl http://localhost:11434/api/tags查模型状态。上线后建议改为第三种。

4.2 为什么Clawdbot配置里不能写localhost

这是新手最高频的误区。再次强调:

  • 在宿主机终端里,localhost=127.0.0.1= 本机;
  • 在Clawdbot容器里,localhost= 它自己(一个空的、没跑服务的容器);
  • 在Clawdbot容器里,ollama= Ollama容器在clawdbot-net中的IP(如172.20.0.2),这是Docker DNS自动解析的。

所以永远记住:容器间通信,用服务名;宿主机访问容器,用localhost:端口;容器访问宿主机,用host.docker.internal(仅Docker Desktop)或宿主机真实IP。

4.3 常见报错与速查解决方案

报错信息根本原因一行修复命令
Connection refusedwhen calling ollama from clawdbotClawdbot容器无法访问Ollama容器docker-compose restart clawdbot(确保Ollama已先启动)
model not found: qwen3:32bOllama容器内未加载模型docker exec ollama-qwen3 ollama run qwen3:32b
unauthorized: gateway token missingURL缺少token参数改为http://localhost:3000/?token=csdn
GPU memory exhaustedon qwen3:32b显存不足,Ollama默认未启用GPU卸载docker-compose.ymlollama服务下添加:
environment:
- OLLAMA_GPU_LAYERS=99
Error response from daemon: could not select device driverNVIDIA Container Toolkit未安装或未启用sudo systemctl restart docker && sudo nvidia-ctk runtime configure --runtime=docker

关于GPU加速:Qwen3:32B在24G显存上运行吃紧。加OLLAMA_GPU_LAYERS=99强制所有层都走GPU,能显著提升推理速度。你也可以在ollama run时加参数:ollama run --num-gpu 1 qwen3:32b

5. 进阶技巧:让部署更健壮、更易维护

5.1 模型热更新不重启Clawdbot

Clawdbot支持运行时重载模型配置。当你新增一个模型(比如qwen3:72b),只需:

  1. 在宿主机执行:docker exec ollama-qwen3 ollama run qwen3:72b
  2. 修改config/config.json,追加新模型配置项
  3. 发送SIGHUP信号重载配置:
docker kill -s HUP clawdbot-main

Clawdbot会在日志中打印Config reloaded successfully,无需docker-compose restart,业务零中断。

5.2 日志集中查看与问题定位

把两个容器的日志合并在一个流里看,效率翻倍:

# 查看最近100行混合日志 docker-compose logs -f --tail=100 | grep -E "(ollama\|clawdbot\|error\|failed)" # 单独看Ollama推理耗时(关键性能指标) docker logs ollama-qwen3 2>&1 | grep "evaluated" | tail -20 # 输出示例:[GIN] 2024/06/15 - 14:23:01 | 200 | 3.2452s | 127.0.0.1 | POST "/api/chat"

5.3 备份与迁移:三步带走整个环境

你的部署不是黑盒,所有数据都落盘在项目目录:

  1. 模型文件./ollama_models/(Ollama模型二进制)
  2. Clawdbot数据./data/(会话记录、用户配置等)
  3. 配置文件./config/config.json+./docker-compose.yml

迁移时,只需把整个~/clawdbot-qwen3文件夹拷贝到新机器,执行:

docker-compose down && docker-compose up -d

5秒内恢复全部服务,真正的“所见即所得”。

6. 总结:一次配置,长期受益

你现在已经完成了Clawdbot与Qwen3:32B的深度集成部署。这不是简单的“能跑就行”,而是构建了一个生产就绪的AI代理基础设施

  • 两个服务运行在同一个Docker网络,通信高效、隔离安全;
  • 端口映射清晰明确,宿主机可调试、容器间可直连;
  • 配置文件集中管理,模型增删灵活,支持热更新;
  • 全流程覆盖GPU加速、日志追踪、故障排查、备份迁移。

接下来,你可以基于这个底座做更多事情:接入RAG插件增强知识库、挂载向量数据库实现语义检索、用Clawdbot的扩展系统开发自定义工具……而这一切,都建立在今天你亲手打通的这条稳定、低延迟的模型调用链路上。

获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/29 17:53:32

2026年多语言AI落地入门必看:Hunyuan MT1.5+弹性GPU部署指南

2026年多语言AI落地入门必看:Hunyuan MT1.5弹性GPU部署指南 1. 为什么现在必须关注这款轻量级翻译模型? 你有没有遇到过这些场景: 做跨境电商,要批量翻译30种语言的商品描述,但商用API按字符计费,成本高…

作者头像 李华
网站建设 2026/5/23 7:24:52

Web前端制作一个评论发布案例

完成该案例需要用到的知识点有: 一、HTML基础 1. 语义化标签使用: textarea 多行输入框、 ul/li 列表承载动态内容、 span 行内元素展示字数/操作按钮 2. 表单属性: maxlength 限制输入框最大字符数、 placeholder 输入提示 3. 元素…

作者头像 李华
网站建设 2026/5/28 12:50:43

从零实现电商搜索:Elasticsearch整合SpringBoot详解

以下是对您提供的博文《从零实现电商搜索:Elasticsearch整合SpringBoot详解》的 深度润色与重构版本 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI腔、模板化结构(如“引言/总结/展望”等机械标题) ✅ 打破模块割裂,以真实开发者的视角重构逻辑流:从一个具体问题切…

作者头像 李华
网站建设 2026/5/20 12:32:23

Open Interpreter语音识别:音频处理脚本部署实战

Open Interpreter语音识别:音频处理脚本部署实战 1. Open Interpreter 是什么?不只是“会写代码的AI” 你有没有试过这样操作电脑: “把这段录音转成文字,再按时间戳分段,最后导出成带格式的 Word 文档。” ——不是…

作者头像 李华
网站建设 2026/5/20 9:33:34

避坑指南:部署阿里Paraformer时常见问题全解,少走弯路

避坑指南:部署阿里Paraformer时常见问题全解,少走弯路 1. 为什么需要这份避坑指南? 你是不是也经历过这些时刻: 模型跑起来了,但上传个MP3就卡住不动,控制台一片空白?热词明明填了“人工智能…

作者头像 李华
网站建设 2026/5/21 11:53:20

Glyph功能测评:图文混合理解到底强不强

Glyph功能测评:图文混合理解到底强不强 1. 这不是OCR,也不是普通多模态模型 很多人第一次看到Glyph,会下意识把它当成一个“高级OCR工具”——毕竟它把文字渲染成图、再让视觉模型去读。但这种理解偏差很大,就像把显微镜当成放大…

作者头像 李华