本文基于官方文档整理,并结合了实战中遇到的 Docker Compose 版本过低(V1 vs V2)以及 80 端口占用问题,提供了一套能够直接落地、一次跑通的解决方案。
🛠 一、 环境准备(关键步骤)
官方要求 Docker Compose V2,但 Ubuntu 默认 apt 源里的通常是 V1(1.29.x),这会导致 unsupported option 报错。我们需要手动安装最新版。
1. 安装/更新 Docker 及清理旧版
# 1. 更新软件源
sudo apt-get update
# 2. 卸载旧版 Docker 和 Docker Compose (防止冲突)
sudo apt-get remove docker docker-engine docker.io containerd runc docker-compose
# 3. 安装 Docker 基础组件
sudo apt-get install docker.io -y2. 手动安装 Docker Compose V2 (解决版本报错的核心)
不要用 apt install docker-compose,请直接运行以下命令下载二进制文件:
# 下载 V2.24.1 版本 (稳定推荐)
sudo curl -SL https://github.com/docker/compose/releases/download/v2.24.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 创建软链接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 验证版本 (必须显示 v2.x.x)
docker-compose --version📥 二、 获取代码与配置
1. 克隆 Dify 源码
直接拉取最新稳定版:
git clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" https://github.com/langgenius/dify.git(如果没有安装 jq,可以先 sudo apt install jq,或者直接去 GitHub 看最新版本号手动替换)
2. 初始化配置
cd dify/docker
cp .env.example .env🔌 三、 解决端口冲突(80端口避坑)
默认情况下 Dify 会占用 80 端口。如果你的服务器上有 Nginx、Apache 或宝塔面板,启动一定会报错 Address already in use。
我们统一将对外端口修改为 81。
方法 A:一条命令修改(推荐,适合脚本党)
直接修改 docker-compose.yaml 中的 Nginx 端口映射:
# 将 "80:80" 或 "${...}:80" 替换为 "81:80"
sed -i 's/- "${EXPOSE_NGINX_PORT:-80}:${NGINX_PORT:-80}"/- "81:80"/' docker-compose.yaml方法 B:手动修改
编辑文件:nano docker-compose.yaml 搜索 nginx 服务,找到 ports:
nginx:
...
ports:
- "81:80" # <--- 修改左边为 81,保留右边 80
- "${EXPOSE_NGINX_SSL_PORT:-443}:${NGINX_SSL_PORT:-443}"🚀 四、 启动 Dify
一切准备就绪,开始启动:
sudo docker-compose up -d检查状态
等待 1-2 分钟让数据库初始化,然后检查容器运行情况:
docker-compose ps确保所有容器状态都为 Up 或 Health。
🌐 五、 访问与初始化
现在,你可以通过浏览器访问安装向导了:
- 访问地址:
http://你的服务器IP:81/install - 设置管理员:根据提示设置邮箱和密码。
- 登录使用:设置完成后,以后直接访问
http://你的服务器IP:81即可。
🔄 六、 常用维护命令(备忘)
停止服务:
cd dify/docker docker-compose down重启服务:
docker-compose restart更新 Dify:
cd dify git pull origin main cd docker docker-compose down docker-compose pull docker-compose up -d
📝 极速部署脚本 (Cheat Sheet)
如果你下次需要在一台新机器上部署,直接复制下面这段代码运行即可(假设已安装 Docker):
# 1. 下载 Docker Compose V2
sudo curl -SL https://github.com/docker/compose/releases/download/v2.24.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose && sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 2. 克隆代码
git clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" https://github.com/langgenius/dify.git
# 3. 配置环境与修改端口 (改为81)
cd dify/docker
cp .env.example .env
sed -i 's/- "${EXPOSE_NGINX_PORT:-80}:${NGINX_PORT:-80}"/- "81:80"/' docker-compose.yaml
# 4. 启动
sudo docker-compose up -d参考资料:
使用 Docker Compose 部署 Dify - Dify Docs
版权属于:soarli
本文链接:https://blog.soarli.top/archives/782.html
转载时须注明出处及本声明。