Dify 本地部署教程:Docker Compose 安装、初始化管理员、改配置与升级

Dify 怎么本地部署?本文按官方自部署文档给出最低配置、三条命令启动 Docker Compose、各容器应有的状态、从 /install 初始化管理员,以及改端口、升级和克隆报错的处理。

NNathaniel bigo··原创首发·AI 辅助撰写
8 分钟读完
资料核对于 2026-10-11 · 依据官方文档与公开资料整理 免费账号 账号

适用于谁

  • 搜「dify 本地部署」「dify docker 部署教程」「dify docker 部署升级」「dify windows docker 部署」的人;
  • 出于数据不出内网、想接本地模型等原因,要把 Dify 装在自己电脑或服务器上的人。

本文根据 Dify 官方自部署文档整理,资料核对于 2026-10-11。只是想试试 Dify 的话,直接用云端版更快,见《Dify怎么用》。

结论先说

  1. 官方推荐用 Docker Compose 部署,核心就三步:克隆代码、复制 .env、docker compose up -d。
  2. 最低配置:CPU 2 核、内存 4 GiB;Docker Compose 需要 2.24.0 或更高。
  3. 启动后先访问 /install 创建管理员,再从首页登录。
  4. 改配置改的是 docker/.env,改完要重启容器。
  5. 升级没有一条通用命令,官方要求按目标版本的发布说明操作。

部署前准备

硬件

官方给出的最低要求:CPU ≥ 2 核,内存 ≥ 4 GiB。这只是让 Dify 自己跑起来的要求,不包含本地模型。

软件

操作系统所需软件官方备注
macOS 10.14 或更高Docker Desktop(含 Docker Compose 2.24.0+)Docker 虚拟机至少分配 2 个虚拟 CPU 和 8 GiB 内存
LinuxDocker 19.03+、Docker Compose 2.24.0+—
Windows(启用 WSL 2)Docker Desktop(含 Docker Compose 2.24.0+)源代码和挂载给容器的数据建议放在 Linux 文件系统里,而不是 Windows 盘

先确认版本:

bash
docker compose version

步骤

1. 克隆代码

官方命令会自动取最新的发布版本:

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

这条命令依赖 git、curl、jq 三个工具,缺哪个装哪个。

2. 准备配置并启动

bash
cd dify/docker
cp .env.example .env
docker compose up -d

官方文档列出会启动的容器:

  • 7 个核心服务:api、api_websocket、worker、worker_beat、web、plugin_daemon、agent_backend;
  • 8 个依赖组件:weaviate、db_postgres、redis、nginx、ssrf_proxy、agent_ssrf_proxy、sandbox、local_sandbox;
  • 1 个一次性任务 init_permissions,用来设置存储文件的权限,跑完自动退出。

第一次启动要拉取所有镜像,耗时取决于网络。

3. 检查容器状态

bash
docker compose ps

每个容器的状态应该是 Up 或 healthy。init_permissions 显示 Exited 是正常的,不用管。

4. 初始化管理员并登录

  1. 浏览器打开初始化页面,设置管理员账号:
  • 本机:http://localhost/install
  • 服务器:http://服务器IP/install
  1. 设置完成后从首页登录:http://localhost 或 http://服务器IP。

登录之后的使用方式和云端版一样:先到模型供应商里接入模型,再创建应用。

修改配置

官方文档对配置文件的说明:

  • 必要的启动配置在 docker/.env 里(就是你从 .env.example 复制出来的那个文件),直接编辑;
  • 可选的、特定组件的配置在 docker/envs/ 下有模板。要覆盖默认值,把对应模板复制一份并去掉 .example 后缀再编辑,例如:
bash
cd dify/docker
cp envs/vectorstores/milvus.env.example envs/vectorstores/milvus.env
  • docker/.env 里的值优先级高于 docker/envs/*.env。

改完之后重启才生效:

bash
docker compose down
docker compose up -d

80 端口被占用是最常见的启动失败原因(Dify 自带的 nginx 默认对外用 80 端口)。官方「环境变量」文档里对应的变量是 EXPOSE_NGINX_PORT(默认 80,含义是映射到 Nginx HTTP 的宿主机端口)。在 docker/.env 里把它改成别的端口再重启;改了之后访问地址也要带上端口号,例如 http://localhost:8080/install。

升级

官方的说法是:不同版本的升级步骤可能不同,要看 GitHub Releases 页面里目标版本的升级指南。另外两条提醒:

  • 升级后对照新的 .env.example 检查自己的 .env,看有没有新增或变更的变量;
  • 如果你改过 docker-compose.yaml,要把改动重新应用到新版本的文件上,不要沿用旧文件,因为新版本可能增加了运行必需的服务。

升级前务必备份。官方 FAQ 给的做法是把整个 dify 目录复制一份并带上时间戳:

bash
cp -r dify "dify.bak.$(date +%Y%m%d%H%M%S)"

常见问题

Q:克隆时报 fatal: Remote branch null not found in upstream origin?

官方 FAQ 的解释:克隆命令通过 GitHub API 获取最新版本号,这个请求失败时(文档里写的常见原因是 GitHub 对匿名请求的频率限制)就会得到 null。到 Dify 的 Releases 页面查到最新版本号,改用显式版本号克隆:

bash
git clone --branch 版本号 https://github.com/langgenius/dify.git

官方还说明,不加 --branch 直接克隆也可以运行,main 分支的 Compose 文件指向的仍是最新发布版镜像。

Q:服务器上不方便用 git 怎么办?

官方 FAQ 提供了 ZIP 方式:用 wget 下载最新发布版的压缩包再解压;或者在另一台设备上下载 ZIP 后手动传过去。

Q:想装指定的旧版本?

git clone https://github.com/langgenius/dify.git --branch 版本号,其余步骤相同。

Q:怎么接本机的 Ollama?

Dify 跑在容器里,容器里的 localhost 不是宿主机。在 Dify 的模型供应商里添加 Ollama 时,地址要填宿主机可达的地址(Docker Desktop 上一般是 http://host.docker.internal:11434),同时把 Ollama 的 OLLAMA_HOST 设为 0.0.0.0。设置方法见《Ollama 修改模型存储位置与局域网访问》。

Q:Windows 上很慢?

对照官方的备注检查:是否启用了 WSL 2;代码目录是否放在了 Windows 盘上。官方建议把源代码和挂载数据放在 Linux 文件系统里。

Q:容器起不来怎么看原因?

docker compose ps 找到状态不对的容器,再用 docker compose logs 容器名 看日志。官方文档另有「Docker 问题」和「常见问题」两篇排查文章。

参考资料

  • Dify 文档:使用 Docker Compose 部署 Dify — https://docs.dify.ai/zh/self-host/deploy/quick-start/docker-compose
  • 自部署常见问题 — https://docs.dify.ai/zh/self-host/deploy/quick-start/faqs
  • 环境变量 — https://docs.dify.ai/zh/self-host/deploy/configuration/environments
  • Dify Releases — https://github.com/langgenius/dify/releases

Nathaniel 的更多内容

  1. 01

    promptfoo 使用教程:对比提示词和模型、写断言自动评测(安装与配置)

    promptfoo 是什么、怎么使用?按官方 README 和入门文档讲清它的用途、三种安装方式、用示例项目起步、promptfooconfig.yaml 里提示词、模型和测试用例三部分怎么写、常用断言类型的含义、eval 与 view 两条命令,以及把它放进日常改提示词流程的方法。

    ChatGPT其他 AI 工具0
  2. 02

    Kimi API怎么用:API Key获取、Python调用、K3价格与429报错处理

    Kimi API Key 在哪里获取、怎么用 Python 调用 K3、价格怎么算、429 和 401 报错怎么办?本文按 Kimi API 开放平台官方文档讲清注册认证、创建 Key、base_url 与模型名、计费规则和常见错误排查。

    Kimi0
  3. 03

    Cursor Agent 模式怎么用:Agent、Plan、Ask 三种模式,检查点回滚与消息排队

    Cursor Agent 模式是什么、和 Plan / Ask 模式怎么选?按官方文档讲清 Agent 能调用哪些工具、Shift+Tab 切换模式、Plan 模式先出方案再动手、用检查点撤销改动、任务进行中排队或插话,以及 /goal 长目标。

    Cursor0
  4. 04

    Gemini 聊天记录怎么导出:导出到文档 / 表格、生成 PDF 与用 Takeout 批量导出完整对话

    Gemini 没有「一键导出全部对话」的按钮,但有三条官方路径:单条回答导出到 Google 文档、Gmail、表格;让 Gemini 直接生成 PDF、Word、Markdown 文件;用 Google Takeout 批量下载全部活动记录。本文给出每种方法的步骤和限制。

    Gemini0
  5. 05

    ChatGPT 生成图片中文乱码、文字错误怎么办:7 个按顺序试的办法

    让 ChatGPT 做海报、封面、信息图,中文总是缺笔画、错字、乱码?本文按 OpenAI 官方图像提示指南,给出从写法、字数、局部修改、质量档位到后期排版的 7 个办法,以及什么时候干脆别让 AI 写字。

    ChatGPT0
  6. 06

    OpenCode Skills 使用指南:技能目录、命名规则、权限配置与不加载排查

    OpenCode 的 Skills 放在哪个目录、怎么控制哪些技能能用?按 OpenCode 官方文档讲清六个扫描位置、name 的正则规则、skill 工具的工作方式、在 opencode.json 里用 allow / deny / ask 配置权限、按智能体覆盖,以及技能不出现时的五项检查。

    其他 AI 工具0

同产品的其他教程

  1. 01

    MinerU 是什么、怎么用:把 PDF 等文档解析成 Markdown(4.0 的安装、四档解析与命令)

    MinerU 是什么、怎么安装使用?按官方中文 README 讲清 4.0 版本的定位、支持的输入与输出格式、flash / basic / standard / advanced 四档解析各适合什么、pip 安装命令、mineru-kit 与 mineru 两个命令的分工和常用写法,以及从旧版升级要注意什么。

    其他 AI 工具0
  2. 02

    npx skills add 怎么用:从 GitHub 安装 Skill、skills.sh 是什么与常用命令

    网上的 Skill 安装命令大多是 npx skills add 开头,它是什么、装到哪去了?按官方 README 讲清 skills 命令行工具支持的来源写法、项目与全局两种范围、-a 指定工具、list / find / update / remove 等命令、软链接与复制的区别,以及怎么关掉遥测。

    Claude其他 AI 工具0
  3. 03

    即梦首尾帧怎么用:两张图生成过渡视频(在哪里、提示词、不能用怎么办)

    即梦首尾帧在哪里、怎么用?本文讲清首尾帧入口、哪些模型支持、两张图的比例要求、过渡提示词怎么写,以及「首尾帧不见了 / 不能用了」「画面跳变」的原因和解决办法。

    其他 AI 工具0
  4. 04

    DeepSeek怎么用:网页版与手机App入门(深度思考、智能搜索、上传文件)

    DeepSeek怎么用?本文从官方入口和登录方式讲起,说清输入框里的「深度思考」「智能搜索」和上传附件各管什么,历史对话怎么改名、置顶、分享和导出,以及手机上使用的注意点。

    其他 AI 工具0
  5. 05

    文心一言网页版怎么用:改名「文心」后的入口、对话与工作任务、PPT生成

    文心一言现在叫什么、网页版入口在哪、怎么用?本文按百度文心官网和 App Store 官方页面讲清「文心」的新入口、对话与工作两种模式、图片生成和帮我写作、任务托管与 AIPPT、知识库和定时任务从哪开始。

    其他 AI 工具0
  6. 06

    Trae 规则与 MCP 配置教程:.trae/rules 四种生效方式、导入 AGENTS.md、添加 MCP Server

    Trae rules 怎么配置、Trae 怎么用 MCP?按 TRAE 官方中文文档讲清全局规则与项目规则的位置、四种生效方式、子目录与多层嵌套、导入 AGENTS.md / CLAUDE.md、提交信息规则,以及从市场添加和手动配置 MCP Server、项目级 mcp.json。

    其他 AI 工具0

0 条评论

登录 后参与评论

还没有评论,来抢沙发~