跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / BashSaaSAI

用 Docker Compose 部署 Dify 的实操记录

Dify 可以通过 Docker Compose 在 CentOS 7/8 上快速私有化部署,但前提是 Docker Engine 和 Compose 版本要对,旧版 V1 容易和高版本配置冲突。部署前需要准备外网访问、放行端口,并建议先清理残留网络,避免 Container cannot be connected to network endpoints 之类的问题。启动时使用 docker compose up -d,若卡住可重新执行,Compose 不会重复破坏数据。完成后通过 docker compose ps 和日志确认服务状态,再进入管理员注册和基础配置。

DataScient发布于 2026/6/30更新于 2026/10/1264 浏览
用 Docker Compose 部署 Dify 的实操记录

一、先说部署前的几个前提

Dify 是开源的大模型应用开发平台,常见的对话机器人、文档问答、知识库检索、智能体编排,都能直接在它上面搭起来。它的好处不在'炫',而在于把一堆原本要自己拼的组件收拢到一套可视化平台里,省掉很多重复造轮子的活。

这次用的是 Docker Compose 一键部署,环境放在 CentOS 7/8 上。思路很直接:镜像交给 Compose 编排,数据落到本地卷,后面重启、升级、迁移都不会太折腾。适合测试环境,也能撑起轻量生产环境;前提是别把系统版本、Compose 版本和网络条件搞错。

1.1 环境要求

  • 操作系统:CentOS 7.x / 8.x(x86_64 架构)
  • 硬件配置:最低 2 核 4G,推荐 4 核 8G;磁盘可用空间 ≥ 20G(测试环境 10G+ 也能跑,33G 更宽松)
  • 网络要求:服务器可访问外网,放行 80 端口,或改成自定义端口后同步放行
  • 依赖软件:Docker Engine ≥ 20.10、Docker Compose V2(V1 不兼容高版本配置)

1.2 这套部署会起哪些服务

Dify 不是单容器应用,Compose 会把一整套核心组件一起拉起来:

  • Dify Web 前端、API 服务、Worker 任务队列
  • PostgreSQL:存配置、用户、对话数据
  • Redis:缓存和任务加速
  • Weaviate:向量数据库,支撑 RAG 检索
  • SSRF Proxy、Sandbox:安全沙箱与代理
  • Nginx:统一入口和反向代理

这些服务都走容器化部署,数据挂本地卷。好处是清晰,坏处是第一次起服务时要耐心等镜像拉取完。

二、先把 Docker 和 Compose 装对

Dify 这套配置对 Docker Compose V2 比较敏感。旧版 docker-compose(带短横线)经常不是'能不能用'的问题,而是'能不能顺利起起来'的问题。少走弯路的办法就是直接上 V2。

2.1 先清掉旧版本,免得互相打架

如果机器上已经有老 Docker,建议先卸掉再装:

yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
rm -rf /var/lib/docker
rm -rf /etc/docker

2.2 安装 Docker Engine

  1. 安装依赖工具
yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 添加 Docker 官方 YUM 源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  1. 安装 Docker
yum install -y docker-ce docker-ce-cli containerd.io
  1. 启动 Docker 并设置开机自启
systemctl start docker
systemctl enable docker
  1. 看版本确认是否装好
docker --version

2.3 安装 Docker Compose V2

Compose 直接装插件版,别再混用旧的二进制包:

yum install -y docker-compose-plugin

查看版本:

docker compose version

这里最好是 v2.20.0 及以上。版本太低,后面很容易撞上 Additional property required is not allowed 这类配置报错。

2.4 配个镜像加速,不然拉镜像会磨人

Docker Hub 在国内拉取速度不稳定,先把镜像加速配好,能省不少时间:

cat > /etc/docker/daemon.json <<EOF
{
 "registry-mirrors": [
  "https://docker.mirrors.ustc.edu.cn",
  "https://hub-mirror.c.163.com",
  "https://mirror.baidubce.com"
 ]
}
EOF

重启 Docker:

systemctl daemon-reload
systemctl restart docker

三、下载项目并准备配置

3.1 拉取 Dify 官方源码

我习惯放在 /opt 下面,后续查找和运维都省事:

cd /opt
git clone https://github.com/langgenius/dify.git
cd dify/docker

3.2 生成环境配置文件

先复制官方示例配置:

cp .env.example .env

测试环境通常不需要改太多,先跑起来再说。要是 80 端口已经被占了,就把 .env 里的 EXPOSE_NGINX_PORT 改成别的端口,比如 8080,然后把防火墙规则同步放开。

3.3 先清理一次异常网络

这一步看起来有点多余,但实际很常见。Compose 起服务时碰到残留网络,最容易报 Container cannot be connected to network endpoints 之类的错。先清掉脏东西,后面省时间:

# 停止残留容器
docker compose down
# 清理无用网络
docker network prune -f
# 清理无用镜像、缓存
docker system prune -f

四、启动 Dify 并确认状态

4.1 启动服务

进入 dify/docker 后,直接执行:

# 正确命令:docker + compose + up -d,中间要有空格
docker compose up -d

这里最容易出错的是命令写法。docker-compose 和 docker compose 不是一回事,-d 也不能乱挪位置。报 unknown shorthand flag: 'd' in -d 时,通常不是服务本身有问题,而是命令格式写歪了。

第一次启动会拉取镜像,时间通常在 3 到 10 分钟之间,取决于机器网络和镜像源速度。中途卡住不用硬扛,直接 Ctrl+C,再执行一次同样的命令就行。Compose 这件事比较'老实',重复执行不会把数据弄乱。

4.2 看容器是不是都起来了

docker compose ps

如果状态都是 Up,说明主链路基本没问题。重点看 web、api、worker、postgres、redis、weaviate 这些服务,别只盯着前端。

4.3 看日志,别只猜

真要排障,日志比猜测管用得多:

# 查看全部服务日志
docker compose logs -f
# 单独看某个服务日志,比如 web
docker compose logs -f web

如果日志里没有明显报错,且能看到服务启动完成的提示,基本就可以进入访问阶段了。

五、访问和初始配置

5.1 打开后台

浏览器直接访问服务器 IP。如果你改了端口,就带上端口号。

5.2 注册管理员

首次启动会进入管理员注册页,按提示创建邮箱和密码即可。这里没什么花活,先把账号建起来。

5.3 后续常用动作

  • 修改管理员密码和个人信息
  • 创建知识库
  • 配置对话应用

这一步之后,Dify 才算真正进入可用状态。前面做的那些安装和配置,本质上都是为了少踩坑。

六、几个最常见的坑

6.1 用了旧版 Docker Compose V1

原因:旧版 docker-compose 不支持高版本配置语法。docker compose 的 V2 插件版才是这套部署真正需要的。

6.2 Container cannot be connected to network endpoints

处理:

docker compose down && docker network prune -f

然后重新启动服务。

常见背景:多半是残留网络、异常容器或者上一次启动没清干净。先清理,再重来,通常比硬排查快。

6.3 启动卡住或镜像拉不下来

处理:先配 Docker 镜像加速,必要时中断后重新执行启动命令。

常见背景:网络慢、80 端口冲突、防火墙没放行,都可能让表面上的'卡住'变成实际的启动失败。

七、收个尾

这套部署里最关键的不是 Dify 本身,而是三个细节:Compose 必须用 V2、异常网络要先清、命令格式不能写错。只要这三点不踩雷,docker compose up -d 一般都能把整套服务拉起来。后面要做知识库、对话应用或者私有化 AI 助手,都是在这个基础上继续往下搭。

目录

  1. 一、先说部署前的几个前提
  2. 1.1 环境要求
  3. 1.2 这套部署会起哪些服务
  4. 二、先把 Docker 和 Compose 装对
  5. 2.1 先清掉旧版本,免得互相打架
  6. 2.2 安装 Docker Engine
  7. 2.3 安装 Docker Compose V2
  8. 2.4 配个镜像加速,不然拉镜像会磨人
  9. 三、下载项目并准备配置
  10. 3.1 拉取 Dify 官方源码
  11. 3.2 生成环境配置文件
  12. 3.3 先清理一次异常网络
  13. 停止残留容器
  14. 清理无用网络
  15. 清理无用镜像、缓存
  16. 四、启动 Dify 并确认状态
  17. 4.1 启动服务
  18. 正确命令:docker + compose + up -d,中间要有空格
  19. 4.2 看容器是不是都起来了
  20. 4.3 看日志,别只猜
  21. 查看全部服务日志
  22. 单独看某个服务日志,比如 web
  23. 五、访问和初始配置
  24. 5.1 打开后台
  25. 5.2 注册管理员
  26. 5.3 后续常用动作
  27. 六、几个最常见的坑
  28. 6.1 用了旧版 Docker Compose V1
  29. 6.2 Container cannot be connected to network endpoints
  30. 6.3 启动卡住或镜像拉不下来
  31. 七、收个尾

更多推荐文章

查看全部
  • Web 自动化测试实战:常用函数全解析与场景化应用指南
  • Python 将元组组成的列表转换为字典
  • 开源开发工具精选与 AI 大模型学习路径解析
  • VS Code + GitHub Copilot 避坑指南:从安装配置到最佳实践
  • Claude Code 进阶指南:利用 Everything 配置打造有记忆的 AI 助手
  • Android Handler 消息传递机制深度解析
  • 基于 React 与 GitPython 实现 GitLens 可视化原型
  • OpenClaw 完整搭建指南:从零开始打造 AI 助手
  • Chromium 144 编译指南:macOS 安装 Xcode
  • 通义万相 2.1 与 AIGC 技术融合实践指南
  • 使用 AI 辅助开发 Java 电商核心功能实战:商品、购物车与订单系统
  • 数据结构核心:KMP 算法、Trie 树与并查集详解
  • 零基础自学Python的五个实用方法与学习路线
  • C++ 哈希表封装实现 unordered_set 与 unordered_map
  • AI 智能体驾驭工程(Harness Engineering)全解析
  • llama.cpp 本地部署与使用指南
  • 在 PyTorch 镜像中部署 Whisper.cpp 语音识别模型
  • 前端高频面试题:TypeScript 篇
  • Python 入门指南:核心优势、环境配置与最佳实践
  • AI 产品经理转型指南:核心能力与实战框架

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online