上一篇 下一篇 分享链接 返回 返回顶部

企业内网部署 Dify:从 Docker 安装到生产环境上线指南

发布人:慈云数据-客服中心 发布时间:20小时前 阅读量:0

Dify Docker部署教程|适合企业用户

在企业级 AI 应用落地过程中,越来越多团队希望通过可视化、低代码的方式快速构建大模型应用,例如智能客服、知识库问答、内部办公助手、数据分析助手、工单自动分流系统等。Dify 作为一款开源的大模型应用开发平台,提供了 Prompt 编排、工作流、知识库、Agent、模型接入、API 发布、权限管理等能力,适合企业在私有化环境中进行部署和二次开发。

对于企业用户而言,采用 Docker 方式部署 Dify 是一种相对高效、稳定、可维护的方案。Docker 部署可以降低环境配置复杂度,便于版本升级、迁移和回滚,也适合在测试环境、预生产环境以及生产环境中快速搭建服务。

本文将以企业实际部署场景为导向,详细介绍如何通过 Docker 部署 Dify,并对服务器准备、环境配置、服务启动、访问验证、模型配置、数据持久化、安全建议、常见问题等内容进行说明。


一、Dify 简介

Dify 是一个开源的 LLMOps 平台,可以帮助企业快速构建、发布和运营基于大语言模型的应用。它的核心能力包括:

  • 可视化应用编排:支持聊天助手、文本生成应用、Agent、工作流等应用类型;
  • 多模型接入:支持 OpenAI、Azure OpenAI、Anthropic、通义千问、智谱、DeepSeek、Ollama、本地模型等;
  • 知识库能力:支持文档上传、向量化、语义检索、RAG 问答;
  • 工作流自动化:支持条件判断、变量传递、HTTP 请求、代码节点等;
  • API 发布:应用可通过 API 方式集成到企业系统中;
  • 团队协作:支持多用户、多空间、权限管理;
  • 私有化部署:支持企业在自有服务器或内网环境中部署。

对于企业用户来说,Dify 的价值不只是“搭建一个聊天机器人”,更重要的是它能成为企业内部 AI 应用开发、管理和交付的平台。


二、为什么企业用户适合使用 Docker 部署 Dify?

Dify 支持多种部署方式,其中 Docker Compose 是最常见、最推荐的方式之一。对于企业来说,Docker 部署具备以下优势:

1. 环境隔离,减少依赖冲突

Dify 涉及 Web 服务、API 服务、数据库、Redis、向量数据库、任务队列等多个组件。如果手动安装,每个组件都需要处理版本兼容问题。使用 Docker 后,各服务运行在独立容器中,避免与宿主机环境产生冲突。

2. 部署速度快

通过官方提供的 Docker Compose 文件,可以一次性拉起多个服务,减少人工配置成本。对于测试环境或演示环境,通常十几分钟即可完成部署。

3. 易于迁移和扩展

Docker 部署天然适合迁移。企业可以先在测试服务器部署,验证无误后再迁移到生产服务器。后续如果要扩容,也可以基于容器化架构进一步接入 Kubernetes。

4. 便于版本升级和回滚

企业环境中,升级必须谨慎。Docker 部署可以通过镜像版本控制实现灰度升级、快速回滚,相比传统部署更容易管理。

5. 适合私有化和内网部署

很多企业对数据安全、合规和隐私有严格要求,不能将业务数据发送到外部平台。Dify 支持私有化部署,结合企业内网模型服务或本地大模型,可以构建更加安全的 AI 应用环境。


三、部署前准备

在正式部署之前,需要准备服务器、系统环境、域名、防火墙以及必要的软件工具。


四、服务器配置建议

Dify 本身对服务器要求不算特别高,但如果企业还要部署向量数据库、知识库服务,甚至本地大模型,则需要根据使用规模进行规划。

1. 测试环境配置

适合个人测试、部门试用、小规模验证:

配置项 建议
CPU 2 核及以上
内存 4GB 及以上,推荐 8GB
磁盘 30GB 及以上
系统 Ubuntu 20.04 / 22.04、Debian、CentOS Stream 等
网络 可访问 Docker 镜像仓库和模型服务

2. 企业生产环境配置

适合企业内部正式使用:

配置项 建议
CPU 4 核及以上,推荐 8 核
内存 16GB 及以上
磁盘 100GB 及以上,推荐 SSD
系统 Ubuntu Server 22.04 LTS
数据库 建议单独部署 PostgreSQL
Redis 建议单独部署或使用高可用 Redis
对象存储 可接入 MinIO、S3 或企业内部存储
反向代理 Nginx / Traefik
HTTPS 推荐配置 SSL 证书

如果企业计划使用本地大模型,例如通过 Ollama、vLLM、Xinference 或 GPU 推理服务接入 Dify,则需要额外准备 GPU 服务器。Dify 本身不负责模型训练和推理,主要负责应用编排和调用模型服务。


五、安装 Docker 和 Docker Compose

以下以 Ubuntu Server 22.04 为例。

1. 更新系统软件包

sudo apt update
sudo apt upgrade -y

2. 安装必要依赖

sudo apt install -y ca-certificates curl gnupg lsb-release git

3. 安装 Docker

可以使用 Docker 官方安装脚本:

curl -fsSL https://get.docker.com | bash

安装完成后,查看 Docker 版本:

docker --version

4. 设置 Docker 开机自启

sudo systemctl enable docker
sudo systemctl start docker

5. 安装 Docker Compose

目前 Docker Compose 通常以插件形式安装。执行:

sudo apt install -y docker-compose-plugin

验证安装:

docker compose version

如果能正常显示版本号,说明 Docker Compose 已安装完成。

6. 将当前用户加入 Docker 用户组

为了避免每次执行 Docker 命令都使用 sudo,可以执行:

sudo usermod -aG docker $USER

然后重新登录服务器,使用户组配置生效。


六、获取 Dify Docker 部署文件

Dify 官方提供了 Docker 部署目录。可以从 GitHub 克隆项目:

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

进入 Docker 部署目录:

cd dify/docker

在该目录下通常可以看到以下文件:

ls

常见文件包括:

docker-compose.yaml
.env.example
nginx/
volumes/

其中:

  • docker-compose.yaml:定义 Dify 各个服务;
  • .env.example:环境变量示例文件;
  • volumes/:部分服务的数据挂载目录;
  • nginx/:Nginx 相关配置。

七、配置环境变量

在启动服务之前,需要先复制环境变量配置文件:

cp .env.example .env

然后编辑 .env 文件:

vim .env

如果服务器未安装 vim,也可以使用 nano:

nano .env

企业部署时,建议重点关注以下配置项。


八、关键环境变量说明

不同版本的 Dify 环境变量可能略有差异,实际请以当前版本 .env.example 为准。以下是企业部署中常见的关键配置项。

1. 控制台访问地址

CONSOLE_WEB_URL=

如果使用 IP 访问,可以配置为:

CONSOLE_WEB_URL=http://服务器IP

如果使用域名访问,例如:

CONSOLE_WEB_URL=https://dify.example.com

2. API 服务地址

SERVICE_API_URL=

通常与 Dify 后端 API 访问地址有关。如果使用域名,可以配置为:

SERVICE_API_URL=https://dify.example.com

3. 应用访问地址

APP_WEB_URL=

用于配置用户访问应用的地址。如果企业内部用户通过统一域名访问,也可以设置为:

APP_WEB_URL=https://dify.example.com

4. 密钥配置

Dify 中会涉及加密密钥、会话密钥等配置。生产环境中不建议使用默认值,应生成足够复杂的随机字符串。

例如可以使用以下命令生成随机密钥:

openssl rand -base64 42

然后将生成的内容填入对应的密钥配置中。

5. 数据库配置

默认 Docker Compose 会启动 PostgreSQL 容器。如果企业生产环境要求更高,建议使用独立 PostgreSQL 数据库,并修改 .env 中的数据库连接信息。

常见配置包括:

DB_USERNAME=postgres
DB_PASSWORD=your_password
DB_HOST=db
DB_PORT=5432
DB_DATABASE=dify

如果使用外部 PostgreSQL,例如:

DB_HOST=192.168.10.20
DB_PORT=5432
DB_USERNAME=dify
DB_PASSWORD=StrongPassword
DB_DATABASE=dify

6. Redis 配置

Dify 使用 Redis 处理缓存和任务队列相关能力。默认可以使用 Compose 中的 Redis 容器,生产环境也可以接入企业已有 Redis。

REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=

7. 向量数据库配置

Dify 支持多种向量数据库,例如 Weaviate、Qdrant、Milvus、Chroma、PGVector 等。企业可以根据使用规模和技术栈选择。

如果只是中小规模知识库,使用默认配置即可。如果数据量较大、检索要求较高,建议单独部署向量数据库。


九、启动 Dify 服务

配置完成后,在 dify/docker 目录下执行:

docker compose up -d

该命令会在后台启动 Dify 所需的所有容器。第一次启动时需要拉取镜像,耗时取决于服务器网络速度。

查看容器运行状态:

docker compose ps

如果所有服务状态都为 runninghealthy,说明启动基本正常。

也可以查看日志:

docker compose logs -f

如果只想查看某个服务日志,例如 API 服务:

docker compose logs -f api

十、访问 Dify 控制台

如果使用默认配置,通常可以通过以下地址访问:

http://服务器IP

或者:

http://服务器IP:端口

具体端口取决于 Docker Compose 和 Nginx 配置。若企业配置了域名和反向代理,则访问:

https://dify.example.com

首次访问 Dify 控制台时,系统会引导创建管理员账号。建议企业使用专门的管理员邮箱,并妥善保管账号。


十一、配置反向代理和 HTTPS

企业生产环境中,不建议直接使用裸 IP 和 HTTP 访问。推荐通过 Nginx 或网关统一代理,并配置 HTTPS。

以下是一个简化版 Nginx 反向代理示例:

server {
    listen 80;
    server_name dify.example.com;

    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name dify.example.com;

    ssl_certificate /etc/nginx/ssl/dify.example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/dify.example.com.key;

    client_max_body_size 100M;

    location / {
        proxy_pass http://127.0.0.1:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

如果服务器上 Dify 的 Nginx 容器已经占用了 80 端口,外部反向代理需要注意端口冲突。可以将 Dify 映射到宿主机其他端口,例如 8080,再由外部 Nginx 转发到该端口。

企业还可以使用以下方式配置证书:

  • 使用 Let’s Encrypt 免费证书;
  • 使用企业内部 CA 证书;
  • 使用云厂商 SSL 证书;
  • 使用网关或负载均衡器统一终止 HTTPS。

十二、配置模型供应商

Dify 部署完成后,还需要配置大模型供应商,否则无法正常创建 AI 应用。

进入 Dify 控制台后,通常可以在以下位置配置模型:

设置 → 模型供应商

常见模型接入方式包括:

1. 接入 OpenAI

填写 OpenAI API Key,并选择对应模型,如:

  • GPT-4o
  • GPT-4o-mini
  • GPT-4.1
  • text-embedding-3-small
  • text-embedding-3-large

适合对外网访问没有限制,并且可以接受数据传输到 OpenAI 的企业。

2. 接入 Azure OpenAI

对于已经使用微软云的企业,可以接入 Azure OpenAI。需要填写:

  • API Key;
  • Endpoint;
  • API Version;
  • Deployment Name。

Azure OpenAI 在企业合规、权限和网络治理方面相对更成熟。

3. 接入国产大模型

Dify 支持多种国产模型服务,例如:

  • 通义千问;
  • 智谱 AI;
  • 百度千帆;
  • 腾讯混元;
  • DeepSeek;
  • Moonshot;
  • 零一万物等。

企业可根据采购情况和业务需求选择。

4. 接入本地模型

如果企业对数据安全要求较高,可以使用本地模型服务。常见方案包括:

  • Ollama;
  • vLLM;
  • Xinference;
  • LocalAI;
  • LM Studio;
  • 自研推理服务。

例如企业在内网 GPU 服务器上部署了 Ollama,可以在 Dify 中配置对应服务地址,使 Dify 调用本地模型完成推理。


十三、配置知识库与向量模型

知识库是 Dify 在企业场景中非常常用的能力。企业可以将内部制度、产品文档、技术手册、合同模板、FAQ、操作规范等资料上传到知识库中,结合大模型实现问答。

1. 配置 Embedding 模型

知识库检索需要使用 Embedding 模型将文本转换为向量。可以选择:

  • OpenAI Embedding;
  • Azure OpenAI Embedding;
  • 通义千问 Embedding;
  • 智谱 Embedding;
  • BGE 系列本地 Embedding;
  • 其他兼容模型。

企业应根据语言类型、检索质量、成本和安全要求选择 Embedding 模型。

2. 创建知识库

在 Dify 控制台中进入知识库模块,创建新的知识库,然后上传文档。常见支持的文档类型包括:

  • PDF;
  • Word;
  • Excel;
  • TXT;
  • Markdown;
  • 网页内容等。

3. 文档切分策略

文档上传后,Dify 会进行文本切分和向量化。企业在使用时需要注意:

  • 切分过短:上下文信息不足,回答可能不完整;
  • 切分过长:检索准确率下降,模型上下文消耗增加;
  • 建议根据文档结构选择合适的分段策略;
  • 对制度类、FAQ 类文档,可采用较小分段;
  • 对技术手册类文档,可适当增大分段长度。

4. 检索效果优化

如果知识库回答不准确,可以从以下方面优化:

  • 提升文档质量,去除无关内容;
  • 使用更好的 Embedding 模型;
  • 调整 Top-K 参数;
  • 开启重排序模型;
  • 优化 Prompt;
  • 将知识库按业务分类拆分;
  • 使用工作流进行多阶段检索和回答。

十四、创建第一个企业 AI 应用

完成模型和知识库配置后,可以创建一个简单的企业内部问答助手。

1. 创建聊天助手

进入 Dify 控制台:

工作室 → 创建应用 → 聊天助手

填写应用名称,例如:

企业制度问答助手

2. 编写系统提示词

可以设置如下提示词:

你是企业内部制度问答助手。
请基于知识库内容回答员工问题。
如果知识库中没有相关信息,请明确说明“当前知识库中未找到相关依据”,不要编造答案。
回答应简洁、准确,并尽量引用制度名称或条款。

3. 绑定知识库

在应用配置中添加已创建的企业制度知识库。

4. 测试应用

输入问题,例如:

员工年假如何计算?

观察模型是否能够从知识库中检索到相关内容,并给出准确回答。

5. 发布应用

测试通过后,可以发布应用。Dify 支持:

  • Web App 链接;
  • API 调用;
  • 嵌入第三方系统;
  • 与企业微信、钉钉、飞书等平台集成。

企业可以根据实际需求将其接入内部门户、OA、客服系统或知识管理平台。


十五、数据持久化说明

Docker 部署最容易被忽视的问题之一是数据持久化。企业部署时必须确认以下数据不会因为容器重建而丢失:

  • PostgreSQL 数据;
  • Redis 数据;
  • 向量数据库数据;
  • 上传文件;
  • 配置文件;
  • 日志文件;
  • Nginx 配置;
  • 插件或扩展相关数据。

Dify Docker Compose 默认会通过 volume 或目录挂载保存数据。企业应定期检查挂载路径,并将关键数据纳入备份策略。

查看 Docker volume:

docker volume ls

查看容器挂载信息:

docker inspect 容器名称

建议企业不要随意执行以下命令:

docker compose down -v

因为 -v 参数会删除相关 volume,可能导致数据库、知识库和上传文件数据丢失。生产环境如果需要停止服务,建议使用:

docker compose down

或:

docker compose stop

十六、备份与恢复建议

企业环境中,Dify 一旦承载业务应用,就必须建立备份机制。

1. PostgreSQL 备份

可以使用 pg_dump 备份数据库:

docker exec -t dify-db-1 pg_dump -U postgres dify > dify_backup.sql

恢复时:

cat dify_backup.sql | docker exec -i dify-db-1 psql -U postgres dify

实际容器名称请通过以下命令确认:

docker compose ps

2. 文件数据备份

可以备份 Docker 挂载目录:

tar -czvf dify_volumes_backup.tar.gz ./volumes

3. 定期备份策略

企业建议采用以下策略:

  • 每日自动备份数据库;
  • 每周备份上传文件和向量数据;
  • 备份文件保留至少 30 天;
  • 关键业务系统采用异地备份;
  • 定期进行恢复演练;
  • 升级前必须完整备份。

十七、升级 Dify

Dify 版本更新较快,升级前需要谨慎处理。建议流程如下:

1. 查看当前版本

git branch
git log -1

或查看当前镜像版本:

docker images

2. 备份数据

升级前务必备份数据库、上传文件和配置文件。

3. 拉取最新代码

cd dify
git pull

进入 Docker 目录:

cd docker

4. 对比环境变量

新版本可能新增环境变量。建议将新的 .env.example 与当前 .env 对比,补充新增配置。

可以使用:

diff .env.example .env

5. 拉取新镜像并重启

docker compose pull
docker compose up -d

6. 观察日志

docker compose logs -f

确认服务正常后,再开放给用户使用。

生产环境不建议在业务高峰期升级,最好选择维护窗口操作。


十八、安全加固建议

企业部署 Dify 时,安全非常重要。建议从以下几个方面加固。

1. 使用 HTTPS

生产环境必须启用 HTTPS,避免账号密码、API Key、业务数据明文传输。

2. 限制访问范围

如果 Dify 仅供内部使用,可以通过以下方式限制访问:

  • 内网部署;
  • VPN 访问;
  • 防火墙白名单;
  • 零信任网关;
  • Nginx IP 限制;
  • 企业统一身份认证。

3. 修改默认密钥

.env 中涉及密钥的配置不能使用默认值,应改为随机强密码。

4. 保护模型 API Key

模型供应商 API Key 属于敏感信息,应限制管理员权限,避免泄露。建议:

  • 使用最小权限 Key;
  • 定期轮换 Key;
  • 设置调用额度;
  • 开启异常消费告警;
  • 不在日志中打印 Key。

5. 控制用户权限

企业内部使用时,不应所有用户都拥有管理员权限。建议按角色分配:

  • 平台管理员;
  • 应用开发者;
  • 知识库管理员;
  • 普通使用者;
  • 审计人员。

6. 日志与审计

企业应保留关键操作日志,包括:

  • 用户登录;
  • 应用创建和修改;
  • 知识库上传;
  • API 调用;
  • 模型调用异常;
  • 权限变更。

如有合规要求,可以接入企业统一日志平台。


十九、常见问题与排查方法

问题一:Docker 镜像拉取很慢

可能原因是网络连接 Docker Hub 或 GitHub 较慢。解决方式:

  • 配置 Docker 镜像加速;
  • 使用企业内部镜像仓库;
  • 在可联网环境提前拉取镜像后导入;
  • 检查服务器 DNS 配置。

问题二:服务启动后无法访问页面

排查步骤:

docker compose ps

确认容器是否正常运行。

查看端口监听:

sudo netstat -tulnp | grep 80

或:

sudo ss -tulnp | grep 80

查看 Nginx 日志:

docker compose logs -f nginx

同时检查云服务器安全组、防火墙、本机 iptables 是否放行端口。

问题三:API 服务报数据库连接失败

检查 .env 中数据库配置是否正确:

  • DB_HOST;
  • DB_PORT;
  • DB_USERNAME;
  • DB_PASSWORD;
  • DB_DATABASE。

如果使用外部数据库,需要确认数据库允许 Dify 服务器访问,并检查网络连通性:

telnet 数据库IP 5432

或:

nc -zv 数据库IP 5432

问题四:知识库无法完成向量化

可能原因包括:

  • Embedding 模型未配置;
  • API Key 无效;
  • 模型服务不可访问;
  • 文档过大;
  • 向量数据库异常;
  • worker 服务未正常运行。

可以查看 worker 日志:

docker compose logs -f worker

问题五:模型调用失败

检查以下内容:

  • 模型供应商配置是否正确;
  • API Key 是否有效;
  • 服务器是否能访问模型供应商;
  • 是否配置了代理;
  • 模型名称是否填写正确;
  • 额度是否用尽;
  • 请求是否被企业防火墙拦截。

二十、企业生产部署最佳实践

为了让 Dify 更稳定地服务企业用户,建议参考以下最佳实践。

1. 区分测试环境和生产环境

不要直接在生产环境试验新版本、新模型和复杂工作流。建议至少准备两个环境:

  • 测试环境:用于验证功能、升级和新应用;
  • 生产环境:用于正式业务访问。

2. 数据库独立部署

生产环境中,PostgreSQL 最好不要长期运行在单机 Docker 容器中。可以使用:

  • 云数据库 PostgreSQL;
  • 企业自建 PostgreSQL 集群;
  • 主从复制;
  • 定期备份;
  • 高可用方案。

3. 统一域名和证书

企业内部应为 Dify 分配正式域名,例如:

https://ai.example.com

并接入统一证书管理,避免用户通过 IP 访问。

4. 设置资源监控

建议监控以下指标:

  • CPU 使用率;
  • 内存使用率;
  • 磁盘空间;
  • 容器状态;
  • 数据库连接数;
  • Redis 状态;
  • API 响应时间;
  • 模型调用量;
  • Token 消耗量。

可使用 Prometheus、Grafana、Zabbix、夜莺、云监控等工具。

5. 控制成本

如果使用商业模型 API,企业应关注 Token 成本。建议:

  • 设置模型调用预算;
  • 为不同应用选择不同模型;
  • 普通问答使用轻量模型;
  • 复杂推理使用高性能模型;
  • 优化 Prompt 长度;
  • 控制知识库召回数量;
  • 定期分析调用日志。

6. 建立应用审核机制

Dify 让业务人员也能快速创建 AI 应用,但企业仍需建立审核机制,避免出现以下问题:

  • Prompt 泄露敏感信息;
  • 知识库上传涉密文档;
  • 应用回答不符合合规要求;
  • API 被滥用;
  • 未经审批接入外部模型。

二十一、适合企业落地的典型场景

Dify 部署完成后,企业可以围绕以下场景进行应用建设。

1. 企业知识库问答

将制度、流程、产品手册、IT 支持文档导入知识库,员工可以直接提问获取答案,减少重复咨询。

2. 智能客服助手

将 FAQ、商品说明、售后政策、工单记录接入 Dify,构建客服辅助系统,提高客服响应效率。

3. 内部办公助手

用于邮件草拟、会议纪要生成、周报总结、文档润色、公告生成等办公场景。

4. 技术支持助手

将技术文档、接口文档、故障处理手册导入知识库,帮助研发、运维和售后快速定位问题。

5. 工作流自动化

结合 Dify 工作流能力,可以实现:

  • HTTP 接口调用;
  • 数据解析;
  • 多模型协作;
  • 条件判断;
  • 内容审核;
  • 自动生成报告;
  • 工单自动分类。

6. 数据分析辅助

通过调用企业内部数据接口,结合大模型生成分析说明、经营报告和趋势解读。


二十二、总结

通过 Docker 部署 Dify,是企业快速搭建私有化 AI 应用平台的高效方式。相比传统手工部署,Docker Compose 能够简化环境配置、降低部署门槛,并提升维护效率。对于企业用户而言,完成部署只是第一步,更重要的是围绕安全、权限、备份、监控、模型管理和业务流程建立完整的运营体系。

在实际生产环境中,建议企业重点关注以下几点:

  • 使用独立域名和 HTTPS;
  • 修改默认密钥并保护 API Key;
  • 建立数据库和文件备份机制;
  • 合理选择模型和向量数据库;
  • 将测试环境与生产环境分离;
  • 对知识库内容进行分类和治理;
  • 建立 AI 应用发布和审核流程;
  • 持续监控模型调用成本和系统性能。

Dify 的优势在于将大模型应用开发流程产品化、可视化,让企业可以更快地把 AI 能力集成到业务系统中。对于希望建设内部 AI 平台、提升知识管理效率、降低应用开发成本的企业来说,Dify 是一个值得深入探索和实践的开源方案。

目录结构
全文