CentOS7 + Docker 部署 Dify 超详细图文教程

如今Agent在互联网上大行其道,网上吵得火热,各个企业也都想搭建自己的Agent。COZE的开源还有最近新出的JoyAgent也都让大家跃跃欲试,今天为大家带来的是Dify的部署方式,相比其他工作流平台,Dify对于整个Agent制作的流程和搭建完整性方面,具有一定的优势,也有大量的企业实战经验。当然各家的部署流程也都大同小异,本文就以Dify为例讲解整个搭建流程。希望能促进AI真正的为企业所用,而不是仅仅在2B业务使用时的玩具。

Dify最低的配置要求是2核4G,发现最近阿里云有免费的试用,便采用了阿里云4核8G的云服务器,CentOS系统,使用Docker部署Dify的全流程。在阿里云的选配下,是可以默认部署好Docker的,鉴于并不费劲,而且很多情况需要手工部署,为了给大家做个示例,这块选择手工部署Docker。

Docker部署

在 Linux 平台部署 Docker 前,必须首先明确发行版及其对应的包管理器:Debian 系(Ubuntu、Mint、Kali)采用 APT,而 Red Hat 系(CentOS 7、RHEL 7)则依赖 yum,因而本文使用yum进行安装。

1、先检查是否是干净的docker环境

将原有的docker移除干净:

sudo yum remove docker

这里由于我是干净的服务器环境,原来没有部署,可以直接进入到下一步的安装。

图片

2、安装yum中的依赖包:

sudo yum install -y yum-utils

如果使用 sudo apt-get update 报错sudo: apt-get:找不到命令,可以尝试选择yum包管理器来安装Docker。

3、添加Docker 仓库

本文采用的阿里云服务器,就直接采用了阿里云的镜像来添加比较方便。当然其他国内服务器也可以采用阿里云的镜像:

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4、安装Docker

添加好镜像后,便可以进行Docker的安装,在安装过程中会有两次下载安装确认,直接y就可以。

sudo yum install docker-ce docker-ce-cli containerd.io

图片

5、完成安装

安装完成后,直接使用命令运行:

sudo systemctl enable --now docker

图片

6、安装Docker Compose

根据Dify的官方文档,Dify是基于Docker Compose进行安装,因而需要安装Docker Compose:

sudo yum install docker-compose-plugin

Dify部署

1、克隆 Dify 源代码

直接使用官方git命令克隆:

git clone https://github.com/langgenius/dify.git

但由于国内拉取github仓库的速度过慢,这边在gitee上同步了仓库,然后进行拉取,大家也可以自行建一个gitee同步仓库进行拉取。

git clone https://gitee.com/aszhangwendi/dify.git

亲测国内的拉取速度还是很快的。

图片

2、启动 Dify

(1)进入 Dify 源代码的 Docker 目录

cd dify/docker

(2)复制环境配置文件

cp .env.example .env

(3)启动 Docker 容器

这块根据系统上的 Docker Compose 版本,选择合适的命令来启动容器。不同版本的启动方式略有区别。我这边是v2.27.1版本,因而命令为:

docker compose up -d

如果是V1版本的,则使用命令:

docker-compose up -d

这块要注意的是,有可能会出现Docker镜像拉取出错的问题,这块解决方法:修改/etc/docker/daemon.json文件

vim /etc/docker/daemon.json

将文件内容改成:

{  "registry-mirrors": [    "https://docker.m.daocloud.io",    "https://docker.imgdb.de",    "https://docker-0.unsee.tech",    "https://docker.hlmirror.com",    "https://docker.1ms.run",    "https://func.ink",    "https://lispy.org",    "https://docker.xiaogenban1993.com"  ]}

然后进行拉取,即可:

图片

检查是否所有容器都正常运行:

docker compose ps

在这个输出中,你应该可以看到包括 3 个业务服务 api / worker / web,以及 6 个基础组件 weaviate / db / redis / nginx / ssrf_proxy / sandbox

entrypoi…"   worker_beat     2 hours ago   Up 2 hours             5001/tcp

至此,便已经安装好Dify,可以先前往管理员初始化页面设置设置管理员账户:

NAME                     IMAGE                                       COMMAND                  SERVICE         CREATED       STATUS                 PORTS
docker-api-1             langgenius/dify-api:1.7.2                   "/bin/bash /entrypoi…"   api             2 hours ago   Up 2 hours             5001/tcp
docker-db-1              postgres:15-alpine                          "docker-entrypoint.s…"   db              2 hours ago   Up 2 hours (healthy)   5432/tcp
docker-nginx-1           nginx:latest                                "sh -c 'cp /docker-e…"   nginx           2 hours ago   Up 2 hours             0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp
docker-plugin_daemon-1   langgenius/dify-plugin-daemon:0.2.0-local   "/bin/bash -c /app/e…"   plugin_daemon   2 hours ago   Up 2 hours             0.0.0.0:5003->5003/tcp, :::5003->5003/tcp
docker-redis-1           redis:6-alpine                              "docker-entrypoint.s…"   redis           2 hours ago   Up 2 hours (healthy)   6379/tcp
docker-sandbox-1         langgenius/dify-sandbox:0.2.12              "/main"                  sandbox         2 hours ago   Up 2 hours (healthy)   
docker-ssrf_proxy-1      ubuntu/squid:latest                         "sh -c 'cp /docker-e…"   ssrf_proxy      2 hours ago   Up 2 hours             3128/tcp
docker-weaviate-1        semitechnologies/weaviate:1.19.0            "/bin/weaviate --hos…"   weaviate        2 hours ago   Up 2 hours             
docker-web-1             langgenius/dify-web:1.7.2                   "/bin/sh ./entrypoin…"   web             2 hours ago   Up 2 hours             3000/tcp
docker-worker-1          langgenius/dify-api:1.7.2                   "/bin/bash /entrypoi…"   worker          2 hours ago   Up 2 hours             5001/tcp
docker-worker_beat-1     langgenius/dify-api:1.7.2                   "/bin/bash /entrypoi…"   worker_beat     2 hours ago   Up 2 hours             5001/tcp
# 本地环境http://localhost/install
# 服务器环境http://your_server_ip/install

通过浏览器进入到Dify页面,进行安装

图片

设置好管理员的账号密码,然后进入到登录页面登录:

图片

至此,我们就完成了Dify的部署安装。

图片

Dify更新

进入 dify 源代码的 docker 目录,按顺序执行以下命令:

cd dify/dockerdocker compose downgit pull origin maindocker compose pulldocker compose up -d

要注意:同步环境变量配置

  • 如果 .env.example 文件有更新,请务必同步修改你本地的 .env 文件。

  • 检查 .env 文件中的所有配置项,确保它们与你的实际运行环境相匹配。你可能需要将 .env.example 中的新变量添加到 .env 文件中,并更新已更改的任何值。

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

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

相关文章

vscode(MSVC)进行c++开发的时,在debug时查看一个eigen数组内部的数值

vscode进行c开发的时,在debug时查看一个eigen数组内部的数值问题描述解决方案拓展其他可视化使用visual studio时的可视化使用别的编译器的可视化问题描述 使用vscode进行c开发,编译器是MSVC,在debug的时候想查看一个eigen数组的数值&#x…

【51单片机】【protues仿真】基于51单片机八路抢答器数码管系统

目录 一、主要功能 二、使用步骤 三、硬件资源 四、软件设计 五、实验现象 一、主要功能 1、数码管显示 2、主持人按下开始,8位选手开始抢答 3、第一次使用要设置抢答时间,支持掉电存储 4、选手抢答成功,数码管会显示其号码 5、按下主…

深度学习:CUDA、PyTorch下载安装

目录 一、安装准备 二、安装CUDA 2.1 查看本机支持的 CUDA 版本及相关信息 2.2 卸载CUDA(可选) 2.3 下载cuda安装包 2.4 安装 2.5 配置环境变量 三、安装PyTorch 3.1 版本选择 3.2 下载安装 方法一:直接安装(不建议,网差的话会死机…

MyBatis-Plus 快速入门 -常用注解

目录 1. 常用注解 TableName TableId TableField 2. IdType 枚举 3. 使用 TableField 的常见场景 4. 完整示例 5. 总结 在使用 MyBatis-Plus 的过程中,我们经常会用到一些注解来完成实体类与数据库表字段之间的映射关系。本文将带你快速入门,了解…

2025-08-23Excel 条件高亮工具,秒高亮显示符合筛选条件的行数据

Excel 条件高亮工具,秒高亮显示符合筛选条件的行数据 先看图【加班终结者】Excel 条件高亮工具(试用版) ——让错误数据一秒现形,免费先爽 30 次! 你是不是也这样? • 财务对账,1000 行工资表里…

vue 一键打包上传

npm run build之后,将dist文件夹自动压缩,通过ssh自动连接服务器,把压缩包放到指定目录下,然后自动解压根目录创建gulpfile.js文件const gulp require(gulp); const GulpSSH require(gulp-ssh); const archiver require(archiv…

【Qt调试】无法查看QString内容

环境Qt版本:6.9.1问题Qt creator进入断点,Expressions不能查看变量(类型:QString)的内容。解决方法选择变量右键,勾选【Use Debugging Helpers】

防爆自动气象监测设备:高危环境的 “安全堡垒”

防爆自动气象监测设备:高危环境的 “安全堡垒” 柏峰【BF-FB】在化工园区、油气田、矿山等高危行业领域,丝毫马虎不得。而气象条件,这个看似平常的因素,实则在安全生产中扮演着举足轻重的角色。防爆自动气象监测设备的出现&#x…

《C++进阶:引用补充、内联函数与nullptr 核心用法》

😘个人主页:Cx330❀ 👀个人简介:一个正在努力奋斗逆天改命的二本觉悟生 📖个人专栏:《C语言》《LeetCode刷题集》《数据结构-初阶》《C知识分享》 🌟人生格言:心向往之行必能至 前言…

通过python程序将实时监测数据写入excel软件进行保存是常用和非常实用的功能,本文教会大家怎么去搞定此功能

目录 一、功能介绍 二、具体的程序示例 三、实际应用建议 一、功能介绍 本方案的核心功能是持续监听一个数据源(如传感器、API接口、消息队列、其他应用程序等),将获取到的实时数据流以追加的方式写入到Excel文件中。同时,方案…

在 Linux 中全局搜索 Word 文档内容的完整指南

文章目录 为什么不能直接使用 grep 搜索 Word 文档? 解决方案:使用 Pandoc 转换后搜索 步骤 1:安装 Pandoc 步骤 2:创建搜索脚本 步骤 3:执行搜索(两者选其一) 一行命令解决方案 高级用法与优化 1. 忽略大小写搜索 2. 显示匹配内容 3. 性能优化 注意事项 结论 在日常工作中…

基于STM32单片机智能农业大棚控制系统-插件款 DIY 设计开源(实物+程序+原理图+其他资料)

目录 一、项目成品展示 二、功能介绍 三、硬件组成 四、PCB展示 五、程序设计 六、资料分享 资料获取 查看主页介绍:兆龙电子单片机设计 一、项目成品展示 项目成品图片展示: 哔哩哔哩视频链接: STM32单片机智能农业大棚控制系统-插件…

如何实现二维CAD与3D建模工程图关联一体化出图 | 中望3D 2026新亮点

本文为CAD芯智库整理,未经允许请勿复制、转载!原文转自:www.xwzsoft.com/h-nd-609.htmlwww.xwzsoft.com/h-nd-609.html许多企业在同时使用二三维CAD软件时,往往因为2D和3D是不同软件商开发,很容易遇到问题:…

深入理解 Roo Code 的自动批准功能

在软件开发过程中,效率与安全往往是两个需要不断平衡的主题。 Roo Code 中一项能够显著提升效率但也需要谨慎使用的功能——自动批准(Auto-Approval)。如果你经常与 AI 助手协作编码,这个功能可能会改变你的工作流,但错…

《一次高并发场景下疑难Bug的深度排查与复盘》

常规Bug如同路上的小石子,弯腰便可清理;但有些隐藏在架构深处、仅在特定场景下爆发的疑难Bug,却像深渊中的暗礁,不仅会让程序骤然停摆,更可能消耗团队数周甚至数月的精力。我曾亲历过这样一场“战役”—一个仅在高并发峰值时段出现、无规律触发系统崩溃的Bug,从最初的毫无…

互联网大厂Java面试实录:Spring Boot与微服务架构解析

第一轮:基础技术栈 面试官: 小C,你能否简要介绍一下Java SE 8中的Lambda表达式? 小C: Lambda表达式就是Java中的匿名函数,可以简化代码,让代码更优雅。我记得它可以用来替代匿名类,特别是在集合操作中很有用…

渗透测试报告编写平台 | 简化和自动化渗透测试报告的生成过程。

工具介绍 这是一个基于 FastAPI 和 Vue.js 的 Web 应用程序&#xff0c;旨在简化和自动化安全测试报告的生成过程。 <AI编写 能用就行> 主要功能 模板管理: 上传和管理 .docx 格式的报告模板。报告生命周期管理: 创建、编辑、查看和删除安全测试报告。漏洞知识库: 管理和…

Vulkan 学习路线图

按阶段拆解&#xff0c;告诉你每个阶段要写哪些 Demo&#xff0c;逐步从三角形走到完整渲染器。&#x1f539; 第一阶段&#xff1a;入门&#xff08;Hello Vulkan&#xff09;目标&#xff1a;跑通 Vulkan 的最小化程序&#xff0c;理解基本对象。 要做的 Demo&#xff1a;创建…

C语言指针5

文章目录1.sizeof和strlen对比1.1sizeof1.2strlen1.3sizeof和strlen的对比2.数组和指针的笔试题2.1一维数组2.2字符数组2.3二维数组3.指针运算笔试题1.sizeof和strlen对比 1.1sizeof 在学习操作符的时候&#xff0c;我们学习了 sizeof。sizeof 用于计算变量所占内存空间的大小…

【二叉树 - LeetCode】617. 合并二叉树

题目&#xff1a; 617. 合并二叉树 - 力扣&#xff08;LeetCode&#xff09; 题解&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(n…