Files
Qwen3.5-9B-ToolHub-Enhanced…/docs/DOCKER_COMPOSE.md
2026-03-11 16:49:00 +08:00

2.6 KiB
Raw Blame History

Docker Compose

ToolHub 提供 Docker Compose 入口,适合 Linux 主机部署,或不想在 Windows 宿主机安装 Python 的用户。这是一条可选路线,不替代 Windows 原生脚本主线。


前提条件

  • Docker 和 Docker Compose 已安装
  • NVIDIA GPU 驱动已安装,且 NVIDIA Container Toolkit 可用

验证 GPU 容器环境:

docker run --rm --gpus all nvidia/cuda:12.1.0-base-ubuntu22.04 nvidia-smi

启动与停止

docker compose up --build         # 前台启动
docker compose up --build -d      # 后台启动
docker compose down               # 停止

首次启动时后端容器会自动下载模型文件,之后缓存在 Docker 命名卷 toolhub-models 中。

启动后浏览器访问 http://127.0.0.1:8080

如果后端还在下载模型或加载模型到 GPU浏览器会先显示准备中页面。此时直接查看

docker compose logs -f backend

确认下载和加载进度即可。


容器结构

Compose 启动两个服务:

服务 镜像基础 职责
gateway python:3.11-slim 网关层,提供网页入口和 OpenAI 兼容 API端口 8080
backend ghcr.io/ggml-org/llama.cpp:server-cuda 模型后端GPU 推理(端口 8081

架构与 Windows 原生路线一致:浏览器访问网关,网关将推理请求转发给后端。网关容器通过只读方式挂载项目目录(/workspace),文件系统访问行为与 Windows 路线保持一致。


模型管理

模型不会打进镜像,由后端容器首次启动时从 Hugging Face 下载,缓存在命名卷 toolhub-models 中。默认下载 Q4_K_M 量化。

如需切换到 Q8.env 中将 MODEL_GGUF_URL 改为 Q8 下载地址,也可以先在宿主机执行 .\install_q8.cmd 让它自动修改,然后重启容器:

docker compose down
docker compose up --build -d

容器内模型缓存(命名卷)和 Windows 路线的本地缓存(.tmp/models/)是两套独立缓存,互不影响。


配置

Compose 通过 .env 文件读取配置。以下变量会影响容器行为:

变量 默认值 说明
GATEWAY_PORT 8080 网关对外端口
BACKEND_PORT 8081 后端对外端口
THINK_MODE think-on 思考模式
CTX_SIZE 16384 上下文窗口大小
IMAGE_MIN_TOKENS 256 图像最小 token 数
IMAGE_MAX_TOKENS 1024 图像最大 token 数
MMPROJ_OFFLOAD off 视觉投影卸载开关

修改 .env 后重启容器生效。