Docker新手实战从零部署Dify 0.7.1全流程指南第一次接触Docker和Dify时面对陌生的命令行和配置文件很多人会感到无从下手。本文将带你完整走一遍Dify 0.7.1的部署流程特别针对常见的端口冲突问题提供解决方案即使你是Docker新手也能轻松上手。1. 环境准备与基础配置在开始之前确保你的系统已经安装好Docker和Docker Compose。可以通过以下命令检查版本docker --version docker-compose --version如果尚未安装可以参考官方文档进行安装。推荐使用Linux系统以获得最佳性能体验但Windows和macOS也完全支持。1.1 获取Dify源代码首先需要获取Dify的最新代码。使用git克隆仓库时添加--depth 1参数可以加快下载速度因为我们只需要最新版本的代码git clone --depth 1 https://github.com/langgenius/dify.git cd dify/docker1.2 配置文件初始化进入docker目录后我们需要复制示例环境文件并做一些必要的修改cp .env.example .env这个.env文件包含了Dify运行所需的各种配置参数。对于新手来说最需要关注的是端口设置特别是当你的80端口已经被其他服务占用时。2. 解决端口冲突问题端口冲突是新手部署时最常见的问题之一。Dify默认使用80端口提供Web服务但如果你的系统上已经有Nginx、Apache等服务占用了80端口就需要修改配置。2.1 修改Nginx端口打开.env文件找到以下配置项EXPOSE_NGINX_PORT80将80改为其他可用端口比如180EXPOSE_NGINX_PORT180保存文件后还需要修改docker-compose.yaml文件中对应的端口映射配置。找到services.nginx.ports部分将前面的端口号也改为180ports: - 180:1802.2 验证端口可用性修改完成后可以使用以下命令检查端口是否可用netstat -tuln | grep 180如果没有输出说明端口可用如果已经有服务占用就需要选择其他端口号。3. 启动Dify服务配置完成后就可以启动Dify服务了。在docker目录下执行docker compose up -d如果你的系统提示找不到docker compose命令可以尝试使用旧版的docker-composedocker-compose up -d这个命令会启动所有必要的容器服务。首次运行可能需要一些时间下载镜像和初始化数据库。3.1 检查服务状态启动完成后可以使用以下命令查看运行中的容器docker ps正常情况下你应该看到9个容器在运行3个业务服务api、worker、web6个基础组件weaviate、db、redis、nginx、ssrf_proxy、sandbox4. 首次访问与初始设置服务启动成功后就可以通过浏览器访问Dify的安装页面了。根据你之前设置的端口号访问地址为http://your_server_ip:180/install4.1 完成安装向导首次访问会显示注册页面填写必要信息后即可创建管理员账户。注册完成后系统会自动跳转到登录页面。4.2 配置模型供应商登录后首先需要设置模型供应商。Dify支持多种模型供应商包括OpenAI和本地部署的XInference等。OpenAI配置步骤点击右上角系统模型设置选择OpenAI选项卡输入有效的API Key根据API Key支持的模型选择合适的选项如gpt-3.5-turboXInference配置用于rerank模型确保XInference服务已启动并运行在9997端口在XInference界面启动bge-reranker-v2-m3模型在Dify的rerank配置中输入XInference的Web访问地址5. 创建第一个知识库应用Dify的核心功能之一是知识库的创建和应用。下面介绍如何创建一个简单的知识库应用。5.1 上传知识文档点击知识库菜单选择新建知识库上传文档文件支持PDF、Word、TXT等格式系统会自动解析文档内容并建立索引5.2 创建工作流知识库创建完成后可以基于它创建工作流点击应用菜单选择新建应用选择知识库问答模板连接之前创建的知识库设置LLM节点选择适当的模型配置prompt模板5.3 发布与测试工作流配置完成后点击发布按钮使其生效。然后可以在调试界面输入问题测试应用效果。6. API访问与应用集成Dify提供了完善的API接口方便将AI能力集成到其他系统中。6.1 生成API密钥进入应用详情页点击访问API选项卡点击生成API密钥按钮复制生成的密钥注意妥善保管6.2 调用API示例使用curl测试对话APIcurl -X POST http://your_server_ip:180/v1/chat-messages \ --header Authorization: Bearer your_api_key \ --header Content-Type: application/json \ --data-raw { inputs: {}, query: 你是谁?, response_mode: blocking, conversation_id: , user: admin }如果一切正常你将收到AI模型的回复。至此你已经完成了Dify的基本部署和使用流程。