soarli

Ubuntu 部署 Dify:避开 Docker 版本与端口冲突的终极指南
本文基于官方文档整理,并结合了实战中遇到的 Docker Compose 版本过低(V1 vs V2)以及 80 ...
扫描右侧二维码阅读全文
31
2026/01

Ubuntu 部署 Dify:避开 Docker 版本与端口冲突的终极指南

本文基于官方文档整理,并结合了实战中遇到的 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 -y

2. 手动安装 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

确保所有容器状态都为 UpHealth


🌐 五、 访问与初始化

现在,你可以通过浏览器访问安装向导了:

  • 访问地址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

最后修改:2026 年 01 月 31 日 03 : 01 AM

发表评论