使用 Docker Compose 部署 RAG 全流程服务,最推荐直接复用成熟的开源项目编排文件,例如 Dify 或 RAGFlow 的官方仓库。适用场景为本地私有化测试或小团队内部知识库搭建,主要风险边界在于本地硬件算力是否支持模型推理以及网络能否正常拉取镜像。
先说结论:Docker Compose 能一次性启动向量库、模型服务和应用界面,但需预先确认硬件资源满足模型运行最低要求。
- 适合:私有化部署、概念验证(POC)、内部知识库构建
- 先准备:检查 Docker 版本、GPU 驱动、磁盘空间及模型文件存储路径
- 验收:容器状态 Running、Web 界面可访问、问答接口返回正常
命令速用版
在获取项目源码后,进入目录执行以下命令启动服务:
docker compose up -d查看实时日志确认启动进度:
docker compose logs -f为什么会这样
Docker Compose 通过 YAML 文件定义多容器依赖关系,避免手动逐个配置环境。
RAG 系统通常包含向量数据库、嵌入模型、大语言模型后端和前端界面,手动部署容易因版本兼容或网络问题导致失败。编排文件锁定了服务版本和端口映射,确保环境一致性。
分步处理
1. 环境检查
确认 Docker 和 Docker Compose 插件已安装,若需本地推理模型,确认 NVIDIA 显卡驱动及 Container Toolkit 可用。
docker `--version`
docker compose version2. 获取编排文件
克隆官方仓库,避免使用来源不明的脚本。
git clone https://github.com/langgenius/dify.git
cd dify/docker3. 配置环境变量
复制示例 env 文件,修改密钥或存储路径,不要直接修改默认配置以免升级冲突。
cp .env.example .env4. 启动服务
执行启动命令,首次运行需拉取镜像,耗时取决于网络状况。
docker compose up -d怎么验证是否生效
检查容器状态是否为 Up,且健康检查通过。
docker compose ps访问默认端口(如 80 或 3000),确认 Web 界面加载正常。尝试上传文档并发起问答,验证检索生成流程是否闭环。
常见坑
- 显存不足:本地部署大模型容易 OOM,建议在 env 中限制模型显存或改用 API 模式
- 端口冲突:宿主机的 80、5432 等端口可能被占用,需在 docker-compose.yml 中修改映射
- 模型下载失败:国内网络拉取 HuggingFace 模型常超时,需配置镜像加速或手动挂载模型文件
常见问题
没有显卡能用 Docker 部署 RAG 吗?
可以,但推理速度会显著下降。
CPU 模式下可运行小参数模型或仅作为编排层调用外部 API,需在配置文件中关闭 GPU 相关选项。
数据存在哪里会丢失吗?
数据默认存储在 Docker Volume 或挂载的宿主目录中。
只要不手动删除 Volume 或挂载文件夹,容器重建不会丢失知识库数据,建议定期备份挂载目录。
如何更换内置的大模型?
在 Web 管理界面或 env 文件中配置模型提供商密钥。
大部分开源 RAG 平台支持切换 OpenAI 兼容接口,修改环境变量后重启服务即可生效。