Dify

在 Linux 服务器用 Docker 安装 Dify

这篇笔记记录一下我在 Linux 服务器上安装 Dify 的过程。 Dify 官方提供了 Docker Compose 配置。只要 Docker 能正常使用,网络也没有问题,安装本身很快。 我实际碰到的问题主要有两个: 当前用户权限不够,需要使用 sudo 或者切换到 root。 服务器访问 GitHub 和 Dock

2026年6月13日5 分钟阅读
在 Linux 服务器用 Docker 安装 Dify

这篇笔记记录一下我在 Linux 服务器上安装 Dify 的过程。

Dify 官方提供了 Docker Compose 配置。只要 Docker 能正常使用,网络也没有问题,安装本身很快。

我实际碰到的问题主要有两个:

  • 当前用户权限不够,需要使用 sudo 或者切换到 root
  • 服务器访问 GitHub 和 Docker 镜像仓库比较慢,需要处理网络问题。

安装前准备

Dify 官方文档给出的最低配置是:

text
CPU >= 2 Core
RAM >= 4 GiB

服务器还需要提前安装:

text
Git
Docker 19.03+
Docker Compose 2.24.0+
curl
jq

先确认 Docker 可以正常运行:

bash
docker version
docker compose version

如果出现权限错误,可以先加上 sudo

bash
sudo docker version
sudo docker compose version

关于 Docker 权限

Linux 上 Docker daemon 通常需要较高权限。

最直接的方式是使用:

bash
sudo docker compose up -d

或者临时切换到 root 用户操作。

如果希望普通用户也能执行 Docker 命令,可以把用户加入 docker 组:

bash
sudo usermod -aG docker $USER

然后重新登录服务器。

需要注意,能执行 Docker 命令的用户权限已经很高。生产服务器不要随便把无关用户加入 docker 组。

处理网络问题

安装 Dify 时,至少有两类网络请求:

  1. 使用 git clone 从 GitHub 下载 Dify 源码。
  2. 使用 Docker 从镜像仓库拉取 Dify 和数据库等容器镜像。

这两类请求不一定共用同一套网络配置。

如果服务器可以使用代理,可以先给当前终端配置代理:

bash
export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890

这通常可以帮助 git clonecurl 等命令访问外部网络。

Docker 拉镜像由 Docker daemon 负责。只给当前终端设置代理后,Docker daemon 不一定会自动使用它。

可以按照 Docker 官方文档,在:

text
/etc/docker/daemon.json

中配置 daemon 代理:

json
{
  "proxies": {
    "http-proxy": "http://127.0.0.1:7890",
    "https-proxy": "http://127.0.0.1:7890",
    "no-proxy": "localhost,127.0.0.1"
  }
}

也可以配置自己可用的镜像加速服务:

json
{
  "registry-mirrors": [
    "https://你的镜像服务地址"
  ]
}

修改后重启 Docker:

bash
sudo systemctl restart docker

代理和镜像地址要根据自己的服务器环境填写。公共镜像服务可能会变化,不要长期依赖随手找到的地址。

安装 Dify

拉取官方仓库:

bash
git clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" \
  https://github.com/langgenius/dify.git
cd dify/docker

这里会拉取最新 release。直接克隆 main 分支也可以,但更适合查看或开发最新代码。

复制环境变量文件:

bash
cp .env.example .env

第一次安装可以先使用默认配置。需要修改端口、域名、数据库或者向量数据库时,再编辑:

text
.env

启动服务:

bash
sudo docker compose up -d

第一次启动需要拉取多个镜像,耗时主要取决于网络速度。

查看容器状态:

bash
sudo docker compose ps

查看日志:

bash
sudo docker compose logs -f

初始化账号

服务启动后,在浏览器打开:

text
http://你的服务器IP/install

按照页面提示创建管理员账号。

初始化完成后,访问:

text
http://你的服务器IP

就可以登录 Dify。

如果页面打不开,还要检查服务器防火墙和云服务器安全组是否允许访问对应端口。默认 Docker Compose 配置通过 Nginx 暴露 HTTP 端口 80

常用命令

停止服务:

bash
sudo docker compose down

重新启动:

bash
sudo docker compose up -d

修改 .env 后,可以重新创建容器让配置生效:

bash
sudo docker compose down
sudo docker compose up -d

我最后的感觉

Dify 的 Docker 安装并不复杂。

真正容易花时间的地方,一般不是 Dify 本身,而是服务器环境:

  • Docker 有没有安装好。
  • 当前用户有没有权限执行 Docker。
  • GitHub 能不能正常访问。
  • Docker daemon 能不能顺利拉取镜像。
  • 防火墙和安全组有没有开放端口。

这些问题解决以后,剩下的步骤基本就是:

bash
git clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" \
  https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
sudo docker compose up -d