Docker Compose 部署 Dify 应用实战指南
Docker Compose 部署 Dify 应用实战指南。介绍基于 CentOS 系统使用 Docker Compose V2 一键部署 Dify 开源大模型应用平台的全过程。涵盖环境准备、Docker 安装配置、镜像加速、项目下载与初始化、服务启动验证及常见故障排查。重点解决版本兼容、网络异常、端口占用等部署问题,实现数据持久化与私有化落地。

Docker Compose 部署 Dify 应用实战指南。介绍基于 CentOS 系统使用 Docker Compose V2 一键部署 Dify 开源大模型应用平台的全过程。涵盖环境准备、Docker 安装配置、镜像加速、项目下载与初始化、服务启动验证及常见故障排查。重点解决版本兼容、网络异常、端口占用等部署问题,实现数据持久化与私有化落地。

Dify 是一款开源的大模型应用开发平台,支持可视化 Prompt 编排、RAG 知识库搭建、智能体配置、插件扩展等核心功能,可快速私有化部署企业级 AI 应用,无需复杂开发即可搭建对话机器人、文档问答、AI 助手等场景。
本文采用 Docker Compose 一键部署方案,基于 CentOS 7/8 系统实操,全程命令可直接复制,针对部署过程中常见的 Docker 版本兼容、网络异常、命令报错、启动卡住等问题做专项避坑,测试环境与轻量生产环境通用,部署后数据持久化,重启不丢失配置。
本次部署包含 Dify 全套核心组件,通过 Docker Compose 统一编排,自动部署以下服务:
所有服务容器化部署,数据挂载至本地卷,保障数据持久化,后续升级、迁移更便捷。
Dify 最新版本仅支持 Docker Compose V2,旧版 V1(docker-compose 带短横)会出现语法兼容报错,需先安装/升级正确版本。
若服务器已安装老旧版本 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
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
systemctl start docker
systemctl enable docker
docker --version
出现版本号即安装成功。
直接安装官方插件版,无需手动配置,彻底解决旧版本兼容问题:
yum install -y docker-compose-plugin
验证 Compose 版本:
docker compose version
需显示 v2.20.0 及以上版本,低于此版本会出现'Additional property required is not allowed'报错。
默认 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
建议将项目存放至/opt 目录,统一管理服务:
cd /opt
git clone https://github.com/langgenius/dify.git
cd dify/docker
复制官方示例配置文件,无需修改即可直接部署测试,生产环境可按需调整端口、密钥等参数:
cp .env.example .env
可选配置:若 80 端口被占用,编辑.env 文件,修改 EXPOSE_NGINX_PORT 为自定义端口(如 8080),同时防火墙放行该端口即可。
针对部署常见的'Container cannot be connected to network endpoints'网络报错,提前清理残留异常网络与无用资源:
# 停止残留容器
docker compose down
# 清理无用网络
docker network prune -f
# 清理无用镜像、缓存
docker system prune -f
进入 dify/docker 目录后,执行以下命令后台启动所有容器(命令格式核心避坑):
# 正确命令:docker + compose + up -d,无短横,空格分隔
docker compose up -d
命令报错避坑:若提示'unknown shorthand flag: 'd' in -d',是命令格式错误,必须严格按照 docker compose up -d 执行,compose 与 up 之间有空格,-d 紧跟 up 后,不可拆分、不可少空格。
首次启动会自动拉取所有依赖镜像,耗时 3-10 分钟(取决于服务器网络),若中途卡住,直接 Ctrl+C 中断,重新执行该命令即可,Docker Compose 具备幂等性,不会重复创建容器、不损坏数据。
启动完成后,查看所有服务状态,确保全部为 Up 状态:
docker compose ps
正常结果:所有服务(web、api、worker、postgres、redis、weaviate 等)状态均为 Up,无退出、无异常。
若容器启动异常,实时查看日志定位问题:
# 查看全部服务日志
docker compose logs -f
# 单独查看某服务日志(如 web 服务)
docker compose logs -f web
日志无报错、出现'服务启动成功'字样,即部署完成。
浏览器输入服务器 IP 地址,直接访问(默认 80 端口,自定义端口则加端口号)。
开始运行会跳出管理员注册页面,直接添加自己的邮箱密码就行。
整理日常运维必备命令,方便后续管理、重启、升级服务。
原因:使用了旧版 Docker Compose V1(docker-compose 带短横),不支持高版本配置语法
解决:执行 docker compose down && docker network prune -f,重新启动服务
原因:命令格式错误,空格缺失或参数位置错误
解决:配置 Docker 国内镜像加速,中断后重新执行启动命令
原因:防火墙未放行 80 端口、容器未正常启动
核心避坑要点:必须使用 Docker Compose V2、提前清理异常网络、严格遵循命令格式,遇到启动卡住可直接重复执行启动命令,无需担心数据损坏。部署完成后即可快速搭建各类 AI 应用,实现私有化大模型应用落地。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online