Docker 部署 RAGFlow 全流程教程

0、RAGFlow 简介

RAGFlow 是开源的下一代 RAG(Retrieval-Augmented Generation)系统,它结合了搜索引擎(向量数据库/Elasticsearch/Infinity)和大语言模型(LLM),用于搭建企业级智能问答与知识库平台。

它的主要特点包括:

  • 检索增强生成 (RAG):支持全文检索 + 向量检索,提升模型回答的准确性。
  • 插件化设计:可自由切换后端引擎(如 Elasticsearch、Infinity)。
  • 灵活部署:支持 Docker 一键部署,提供 slim 版(轻量)和 full 版(带嵌入模型)。
  • 应用场景:企业知识问答、智能客服、文档搜索、私有化 AI 助手。

👉 官方镜像仓库地址(轩辕镜像):https://xuanyuan.cloud/r/infiniflow/ragflow

1、部署前准备(Prerequisites)

在部署 RAGFlow 前,建议满足以下硬件与软件环境:

  • CPU:≥ 4 核
  • 内存:≥ 16 GB
  • 硬盘:≥ 50 GB
  • Docker:版本 ≥ 24.0.0
  • Docker Compose:版本 ≥ v2.26.1

额外注意事项:

  • 确保 vm.max_map_count ≥ 262144(Elasticsearch / Infinity 需要此参数,否则启动报错)。
  • 如果还未安装 Docker,请先参考 Docker 官方安装文档。

2、环境参数设置

2.1 检查 vm.max_map_count

sysctl vm.max_map_count

如果返回值小于 262144,需要执行:

sudo sysctl -w vm.max_map_count=262144

该设置会在重启后失效,如需永久生效,请修改 /etc/sysctl.conf,加入:

vm.max_map_count=262144

并运行 sudo sysctl -p 使配置生效。

3、下载 RAGFlow 镜像

3.1 使用轩辕镜像拉取(推荐)

docker pull docker.xuanyuan.run/infiniflow/ragflow:v0.15.0-slim

3.2 拉取后改名

docker pull docker.xuanyuan.run/infiniflow/ragflow:v0.15.0-slim \
&& docker tag docker.xuanyuan.run/infiniflow/ragflow:v0.15.0-slim infiniflow/ragflow:v0.15.0-slim \
&& docker rmi docker.xuanyuan.run/infiniflow/ragflow:v0.15.0-slim

3.3 免登录方式拉取

docker pull xxx.xuanyuan.run/infiniflow/ragflow:v0.15.0-slim

3.4 官方直连(若能访问 DockerHub)

docker pull infiniflow/ragflow:v0.15.0-slim

3.5 镜像版本选择

版本 大小 是否包含嵌入模型 稳定性
v0.15.0 ≈9GB 稳定
v0.15.0-slim ≈2GB 稳定
nightly ≈9GB 不稳定
nightly-slim ≈2GB 不稳定

👉 建议:

  • 初学者使用 v0.15.0-slim(轻量版本)。
  • 高级工程师或需要内置 embedding 的,使用 v0.15.0。

4、启动 RAGFlow

4.1 克隆官方仓库

git clone https://github.com/infiniflow/ragflow.git
cd ragflow

🚀 为什么需要克隆官方仓库?

  1. Docker 镜像只包含可运行环境和服务代码:镜像里是 RAGFlow 的服务端应用本身,但未提供 docker-compose 配置文件、环境变量模板、服务配置文件。
  2. 克隆仓库是为了获取配置模板和启动脚本:
    • 仓库里的 docker/docker-compose.yml 定义了 RAGFlow 的多容器架构(ragflow-server 主服务、mysql 数据库、minio 对象存储、elasticsearch 文档与向量存储)。
    • .env 文件里有默认的环境变量(端口、密码、镜像版本号等)。
    • service_conf.yaml.template 提供了 LLM 接口等可配置参数。
    • 👉 这些文件要么自己手写,要么直接用官方模板,更省事。
  3. 启动逻辑依赖 docker-compose 文件:单独 docker run 只能启动一个容器,而 RAGFlow 至少还需数据库和存储;官方 docker-compose.yml 编排好所有服务,可一键启动。

4.2 启动容器

docker compose -f docker/docker-compose.yml up -d

4.3 查看启动日志

docker logs -f ragflow-server

若看到以下信息,说明启动成功:

* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:9380
* Running on http://<服务器IP>:9380

4.4 访问 Web 页面

在浏览器中输入:http://<服务器IP>
默认运行在 80 端口,无需写端口号。

5、配置文件说明

RAGFlow 的配置文件主要有 3 个:

  1. .env:设置系统参数(如端口、MySQL 密码、MinIO 密码)。
  2. service_conf.yaml.template:配置 LLM 工厂(如 OpenAI、Azure、Claude),设置 API_KEY。
  3. docker-compose.yml:管理容器服务(Web、DB、存储、搜索引擎);修改端口映射时,可将 80:80 改为 8080:80 之类。

修改配置后需要重启:

docker compose -f docker/docker-compose.yml up -d

6、搜索引擎切换(Elasticsearch ↔ Infinity)

默认使用 Elasticsearch。如需切换到 Infinity:

  1. 停止容器:
    docker compose -f docker/docker-compose.yml down -v
    
  2. 修改 .env
    DOC_ENGINE=infinity
    
  3. 重新启动:
    docker compose -f docker/docker-compose.yml up -d
    

⚠️ 注意:Infinity 在 Linux/arm64 暂不支持。

7、常见问题排查(FAQ)

7.1 无法访问网页?

  • 防火墙:开放 80、443 端口。
  • 端口占用:检查 netstat -tuln | grep 80

7.2 浏览器提示网络错误?

启动后需等待初始化完成,请先执行:

docker logs -f ragflow-server

确认系统已正常启动。

7.3 如何修改访问端口?

编辑 docker-compose.yml

ports:- "8080:80"

然后重启容器。

7.4 如何设置 API Key?

编辑 service_conf.yaml.template,配置:

user_default_llm: openai
openai:API_KEY: "你的OpenAI API Key"

然后重启。

结尾

至此,你已经完成了 RAGFlow 的 Docker 部署!
通过本文你学会了:

  • RAGFlow 的作用与镜像版本选择;
  • 如何用「轩辕镜像」加速拉取 RAGFlow 镜像;
  • Docker Compose 一键启动;
  • 修改配置文件(端口、API Key、搜索引擎);
  • 常见问题排查思路。

👉 对初学者:建议先使用 slim 版熟悉流程;
👉 对高级工程师:可尝试切换 Infinity,或结合 Nginx/SSL 反向代理进行生产部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搜狗网站优化软件网站与手机app是一体吗

spock 集成测试在Grails单元测试中&#xff0c;可以轻松使用Grails随附的Spock框架来模拟或存根协作者&#xff08;例如服务&#xff09;。 “ 测试”一章对模拟协作者&#xff0c; doWithSpring / doWithConfig回调方法&#xff0c;在测试中模拟bean的FreshRuntime批注进行了…

工程业绩在建设厅网站都能查到在线教育自助网站建设平台

基于人工电场算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于人工电场算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于人工电场优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

济南网站建设首选传承网络成都游戏软件开发公司有哪些

学习了博主的介绍&#xff08;深度学习中的FLOPs介绍及计算(注意区分FLOPS)-CSDN博客&#xff09;后&#xff0c;对我不理解的内容做了一点补充。 链接放到下边啦 https://blog.csdn.net/qq_41834400/article/details/120283103 FLOPs&#xff1a;注意s小写&#xff0c;是floa…

信用网站标准化建设商品网站做推广

目录 引入 一、Matplotlib模块&#xff08;常用&#xff09; 1、绘图流程&常用图 ​编辑 2、绘制子图&添加标注 ​编辑 3、面向对象画图 4、Pylab模块应用 二、Seaborn模块&#xff08;常用&#xff09; 1、常用图 2、代码示例 ​编辑 ​编辑 ​编辑 ​…

微信做模板下载网站中信建设有限责任公司 乔峰手机

基本思想希尔排序&#xff08;Shells Sort&#xff09;&#xff0c;以发明人命名&#xff0c;又称为缩小增量排序&#xff0c;也是一种插入排序算法。主要思想&#xff1a;直接插入排序算法时间和待排数据有关&#xff0c;其平均复杂度是O(n^2)&#xff0c;但是在待排数据已经有…

国外做做网站西安做网站程序

文章说明&#xff1a; Linux内核版本&#xff1a;5.0 架构&#xff1a;ARM64 参考资料及图片来源&#xff1a;《奔跑吧Linux内核》 Linux 5.0内核源码注释仓库地址&#xff1a; zhangzihengya/LinuxSourceCode_v5.0_study (github.com) 1. 水位管理和分配优先级 页面分配…

深入解析:从零起步学习Redis || 第四章:Cache Aside Pattern(旁路缓存模式)以及优化策略

深入解析:从零起步学习Redis || 第四章:Cache Aside Pattern(旁路缓存模式)以及优化策略pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !impor…

K6的CI/CD集成在云原生应用的性能测试应用 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Python生态最优秀的webapp框架有哪些? - 教程

Python生态最优秀的webapp框架有哪些? - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &q…

沈阳设计网站wordpress小白能学会吗

目录 接口断言介绍接口断言方式介绍响应状态码断言 课程目标 掌握什么是接口断言。了解接口断言的多种方式。掌握如何对响应状态码完成断言。 思考 这两段代码是完整的接口自动化测试代码吗&#xff1f; …省略… when().get(“https://httpbin.ceshiren.com/get?namead&…

做网上夫妻去哪个网站网站制作对公司的作用

注&#xff1a; &#xff08;1&#xff09;ddt数据驱动中&#xff0c;测试用例的执行次数是由data&#xff08;&#xff09;传参的个数决定。传几个参数&#xff0c;就是执行几次测试用例。 &#xff08;2&#xff09;如果传的是多个元组&#xff08;列表&#xff09;,那么可…

深度解码电子设计可靠性:形式验证(Formal Verification)如何护航 IC 高质量之路

在现代 IC 设计中,错误的代价极高,尤其在安全关键场景中更是不可容忍。这时,形式验证(Formal Verification Methodology)以其数学逻辑为基础,对设计进行全面、严格地验证,成为确保可靠性与功能正确性的基石。什…

怎样创建一个自己的网站wordpress 客户端配置文件

选专业看上去非常简单&#xff0c;但是真正做起来的时候确实不容易&#xff0c;因为对于很多结束高考的学生来说&#xff0c;选专业就意味着他们选择自己的未来&#xff0c;这可是直接关系到未来的学习和职业发展&#xff0c;关系到将来的就业方向&#xff0c;再加上现在的社会…

海尔建设此网站的目的是什么wordpress使用iis

go 实现可重入锁 实际上&#xff0c;Go 语言标准库中的 sync.Mutex 是不可重入的。但是&#xff0c;我们可以基于 sync.Mutex 实现一个可重入锁&#xff08;ReentrantLock&#xff09;。下面是一个简单的可重入锁的实现示例&#xff1a; Go 1package main 2 3import ( 4 "…

建设网站需要哪些内容校际凡科送审平台登录

1、nvm介绍&#xff1a; nvm全英文也叫node.js version management&#xff0c;是一个nodejs的版本管理工具。nvm是node.js版本管理工具&#xff0c;为了解决node.js各种版本存在不兼容现象可以通过它可以安装和切换不同版本的node.js 2、下载nvm地址&#xff1a; https://d…

详细介绍:SpringCloud API Gateway2.0如何解决docker中应用间IP漂移的正确手法

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

251004

目录JT-JY6T4S1-1JT-JY6T4S1-2FT-(JY&VOAs) JT-JY6T4S1-1Conference Certer Reservation Good morning. Hi, i am interested in the computing conference next month. Future direction in computing? Yes, tha…

gradle Cause: zip END header not found

gradle Cause: zip END header not foundgradle Cause: zip END header not found 该错误通常是由于Gradle压缩包下载不完整或损坏导致,可通过以下方法解决:1.确认gradle-wrapper.properties中指定的版本与项目兼容,…

苏州网站建设熊掌号成都兴光华城市建设公司网站

每到期末&#xff0c;发布学生的期末考试成绩单便是老师们的一项重要任务。以往&#xff0c;传统的纸质成绩单分发效率低还易出错&#xff0c;而借助 Excel 表格在线发布&#xff0c;则开启了全新高效模式。 老师们先是精心整理各科成绩&#xff0c;录入精准无误的分数到 Excel…

10 4

p2605 线段树优化转移DP我们很显然可以想到的是定义 \(f_{i,j}\) 表示到 \(i\) 为止 \(i\) 为通讯基站,总共建了 \(j\) 个通讯基站的最小代价 那么我们可以得到转移方程\(f_{i,j} = \min(f_{k,j-1} + w_{i,k}) + c_i\…