Dify本地部署教程:宝塔+Docker从零搭建AI开发平台

Dify开源LLM应用平台介绍及本地Docker部署全流程教程
本文介绍了Dify这一开源大语言模型应用开发平台的核心概念、功能优势及应用场景,并详细讲解了通过VMware虚拟机+Ubuntu+宝塔面板+Docker的本地部署全流程。Dify融合BaaS和LLMOps理念,支持数百个国内外模型,内置提示词编排、RAG知识库、Agent工具调用等能力,相比LangChain更适合快速交付和生产环境。
什么是Dify?为什么值得学习
Dify是一款开源的大语言模型(LLM)应用开发平台,融合了后端即服务(BaaS)和LLMOps的理念,让开发者甚至非技术人员都能快速搭建生产级的生成式AI应用。
这里有两个关键概念值得展开:BaaS(Backend as a Service) 是一种云计算服务模式,它将后端基础设施(如数据库、用户认证、文件存储、API管理等)抽象为即用型服务,开发者无需从零搭建和维护服务器端逻辑。LLMOps 则是MLOps(机器学习运维)在大语言模型领域的延伸,涵盖了LLM应用从开发、测试、部署到监控的全生命周期管理,包括提示词版本管理、模型性能监控、成本追踪、A/B测试等运维实践。Dify将这两个理念融合,意味着它既提供了开箱即用的后端能力,又内置了管理LLM应用全流程的工具链。
与另一个知名的AI开发库LangChain相比,如果说LangChain是一个工具箱(提供锤子、钉子等零散工具),那么Dify更像是一套完整的脚手架——不仅有工具,还有经过工程设计和软件测试的整体架构,能直接支撑生产环境的需求。
具体来说,LangChain是2022年底由Harrison Chase发起的开源Python/JavaScript库,它提供了与LLM交互的各种抽象组件,如链(Chain)、代理(Agent)、记忆(Memory)、文档加载器等。开发者需要编写代码将这些组件组装成完整应用,灵活性极高但学习曲线陡峭,且从原型到生产部署需要自行解决工程化问题(如并发处理、错误重试、日志监控等)。Dify则采用了不同的产品哲学:它提供可视化的编排界面,将常见的LLM应用模式(聊天机器人、工作流、知识库问答)产品化,内置了生产环境所需的基础设施。两者并非替代关系——LangChain适合需要深度定制的开发者,Dify适合追求快速交付和团队协作的场景。

Dify的核心优势在于三点:
- 模型支持广泛:支持数百个大语言模型,国外包括OpenAI、Gemini、Claude等,国内覆盖智谱、百川、讯飞星火、通义千问、文心一言、DeepSeek等主流模型
- 功能完整:内置提示词编排界面、高质量RAG引擎(外挂知识库)、Agent工具调用、工作流设计等关键能力
- 开源免费:开发者可以在开源基础上自由扩展,将重心放在创新和业务本身
Dify能做什么?主要应用场景一览
Dify的应用场景非常丰富,主要包括以下几个方向:
- 构建智能聊天机器人和Agent:通过提示词编排和工具调用,快速创建各类AI助手
- 集成到现有业务系统:通过Dify提供的API,将大语言模型能力内嵌到已有应用中
- 设计自动化工作流:针对特定业务场景,编排AI执行的工作流程
- 挂载企业知识库:将产品文档、参数等企业数据作为AI的外挂知识库,实现精准的业务问答
- 发布为Web应用:将构建好的AI应用发布为公开的Web站点供用户访问
其中,RAG(Retrieval-Augmented Generation,检索增强生成) 是解决大语言模型知识局限性的核心技术架构,值得深入理解。其工作原理是:当用户提出问题时,系统先从外部知识库中检索与问题最相关的文档片段,然后将这些片段作为上下文与用户问题一起送入LLM生成回答。这种方式解决了LLM训练数据截止日期的限制、幻觉问题以及企业私有数据无法被模型直接获取的痛点。RAG的关键环节包括文档分块(Chunking)、向量嵌入(Embedding)、向量数据库存储与检索、以及重排序(Reranking)等步骤。Dify内置的RAG引擎封装了这些复杂流程,用户只需上传文档即可完成知识库构建。
说个细节,Dify支持的模型中,不同模型具备不同能力。例如想构建能调用工具的Agent,需要选择支持工具调用(Function Calling)的模型,如OpenAI、月之暗面、DeepSeek等;而支持视觉能力的模型则可以处理图像输入。选择模型时需要根据实际需求匹配。
Function Calling(函数调用/工具调用) 是OpenAI在2023年6月率先推出的一项关键能力,它允许大语言模型在对话过程中识别用户意图,并结构化地调用预定义的外部函数或API。具体流程是:开发者预先定义一组可用工具的描述(包括函数名、参数格式、功能说明),LLM在理解用户请求后,判断是否需要调用某个工具,如果需要则输出标准化的JSON格式调用参数,由应用层执行实际调用后将结果返回给LLM继续生成回答。这一机制是构建AI Agent的基础,使LLM从纯文本生成器进化为能够操作外部世界的智能体。并非所有模型都支持此能力,因此在Dify中构建Agent时需要注意模型选择。
Dify本地部署环境准备
Dify支持多种部署方式,包括源码启动、Docker部署等。本教程采用宝塔面板+Docker的方式,这是对新手最友好的方案。
选择Docker部署的原因在于:Docker是一种操作系统级别的虚拟化技术,它将应用程序及其所有依赖(运行时环境、系统库、配置文件等)打包成标准化的容器镜像。与传统虚拟机不同,Docker容器共享宿主机的操作系统内核,因此启动速度快、资源占用小。对于Dify这样包含多个微服务组件(Web前端、API服务、Worker进程、数据库、Redis缓存、向量数据库等)的复杂应用,Docker Compose可以通过一个配置文件定义并编排所有服务的启动顺序和网络关系,极大简化了部署复杂度。这也是为什么宝塔面板+Docker的方案对新手友好——它将原本需要手动配置十几个服务的过程简化为几次点击。
第一步:安装VMware虚拟机
首先需要下载两个软件:
- VMware Workstation(或VMware Player):用于运行Linux虚拟系统
- Ubuntu 22.04 ISO镜像:作为虚拟机的操作系统
安装VMware时需要注意:不要安装到C盘,因为虚拟机运行会产生大量缓存文件,容易占满系统盘空间。
第二步:创建并安装Ubuntu虚拟机
打开VMware后,按以下步骤操作:
- 点击「创建新虚拟机」,选择「稍后安装操作系统」
- 系统类型选择Linux,版本选择Ubuntu 64位
- 磁盘大小分配20GB即可(仅用于部署Dify的话足够)
- 完成创建后,进入虚拟机设置,在CD/DVD选项中加载Ubuntu ISO镜像文件

加载镜像后播放虚拟机,选择「Try or Install Ubuntu」,进入安装界面后:
- 语言选择「中文简体」
- 安装类型选择「最小安装」(仅部署Dify足够)
- 磁盘选择「清除整个磁盘」直接安装
- 设置用户名和密码(建议简单密码如123456,可勾选自动登录)

安装完成后重启,Ubuntu系统就准备好了。
安装宝塔面板
进入Ubuntu系统后,打开浏览器访问宝塔官网,选择「宝塔Linux面板」→「安装免费版」,复制Ubuntu对应的安装命令。
在终端中(快捷键Ctrl+Alt+T打开)粘贴命令并执行,输入系统密码后等待安装完成。安装成功后,宝塔会提供:
- 内网访问地址
- 默认用户名和密码
优化宝塔面板配置
默认的端口号和安全入口比较难记,建议通过终端运行bt命令进行修改:
- 将端口号改为易记的数字(如8899)
- 将安全入口改为简短路径(如/backend)
- 修改用户名和密码为自己熟悉的组合

修改完成后,通过http://虚拟机IP:8899/backend即可访问宝塔面板。此后所有操作都可以在浏览器中完成,虚拟机窗口可以最小化。
通过宝塔面板用Docker部署Dify
安装Docker环境
在宝塔面板左侧找到「Docker」模块,点击安装,使用默认配置即可。安装过程需要几分钟。
部署Dify应用
Docker安装完成后,在Docker模块中搜索「Dify」,点击安装。如果遇到安装失败(常见的BT File错误),可以尝试以下解决方案:
方案一:修改DNS配置
在虚拟机终端中编辑DNS配置文件:
nano /etc/resolv.conf
将nameserver改为:
nameserver 8.8.8.8
nameserver 8.8.4.4
这里使用的是Google的公共DNS服务器地址。DNS(Domain Name System,域名系统)负责将人类可读的域名(如github.com)解析为机器可识别的IP地址。国内网络环境下,默认DNS有时无法正确解析Docker镜像仓库的地址,导致镜像拉取失败。将DNS改为8.8.8.8(Google主DNS)和8.8.4.4(Google备用DNS)可以获得更稳定的域名解析服务。
保存后重启宝塔面板,重新安装Dify。
方案二:配置Docker镜像加速
在Docker设置中修改加速URL,宝塔的帮助文档中提供了多个国内加速链接,逐一尝试填入后重启Docker服务。Docker镜像加速的原理是将原本需要从Docker Hub(位于海外)拉取的镜像,通过国内的镜像代理节点进行缓存和分发,从而解决网络访问慢或不可达的问题。
访问Dify管理后台
安装成功后,将Dify的访问地址中的HTTPS改为HTTP,端口改为8088,末尾加上/install,即可进入Dify的初始化设置页面。设置好邮箱和用户名后,本地部署就全部完成了。
总结与后续学习路线
本教程完成了Dify从零到部署的全过程,采用VMware+Ubuntu+宝塔+Docker的技术栈,虽然步骤较多,但每一步都是图形化操作,对新手非常友好。
部署完成后,还有更多进阶内容值得探索:
- 构建智能聊天机器人和Agent
- 配置AI工具调用
- 设计自动化工作流
- 搭建RAG知识库
- 通过API集成到外部应用
Dify作为目前最活跃的开源LLM应用开发平台之一,其生态和功能仍在快速迭代。掌握本地部署是第一步,后续可以根据实际业务需求,逐步深入各个模块的使用。
核心要点
- Dify是开源的大语言模型应用开发平台,支持数百个国内外模型,提供提示词编排、RAG知识库、Agent工具调用等完整功能
- 本教程采用VMware虚拟机+Ubuntu+宝塔面板+Docker的部署方案,对新手最为友好
- 部署过程中常见的网络问题可通过修改DNS配置(8.8.8.8)或配置Docker镜像加速来解决
- Dify部署完成后可构建聊天机器人、设计工作流、挂载知识库,并通过API集成到现有业务系统
- 与LangChain相比,Dify提供的是经过工程设计的完整脚手架方案,更适合生产环境使用
相关推荐
教程攻略Cursor+Codex双IDE协同:开源项目二开实战方法论
基于实战经验总结的开源项目二次开发完整方法论,详解Cursor+Codex双IDE协同工作流,涵盖二开七环节、MVP验证、AI读源码技巧,帮助开发者三天跑通项目、两周完成业务集成。
教程攻略Cursor多Agent实战:50分钟搭建Next.js全栈博客
使用Cursor IDE多Agent协作模式,50分钟内从零搭建全栈博客。涵盖Next.js、Clerk认证、Supabase数据库集成,详解4个AI Agent分阶段开发流程与关键避坑经验。
教程攻略从零搭建AI软件工厂:Cursor工程师的多Agent协作实战经验
Cursor工程师Eric分享AI软件工厂构建实战:从自动化六层级、护栏设计、并行Agent管理到规模化扩展,详解如何用多Agent协作实现7×24小时高效软件开发。