本地部署 Dify + DeepSeek 搭建AI知识问答客服全流程复盘

从零开始在 Windows 10 上部署开源 AI 知识问答平台 Dify,对接 DeepSeek API 实现 LLM 驱动的智能客服。全程踩坑实录,含 Docker 加速器配置、端口冲突解决、FastCGI 共存方案等实战细节。

Dify v1.16.1 · DeepSeek API · Docker Desktop · Windows 10


01 为什么选 Dify + DeepSeek

企业知识库 + AI 问答客服是当下最火的 AI 落地场景之一。市面上有三个主流开源方案:

平台 协议 特点 适用
Dify MIT 全功能:知识库 + 工作流 + API + 客服 商用首选
FastGPT Apache 2.0 专做知识库问答,工作流强 垂直问答
MaxKB GPL 轻量,上手快 简单 Q&A

Dify 的理由:MIT 协议可以商用,功能最全(知识库、工作流、API、客服机器人一条龙),社区活跃度高,Docker 部署相对成熟。

DeepSeek API 的理由:价格屠夫。输入 0.5 元/百万 token,输出 2 元/百万 token。充 10 块钱够一个小客服用好几个月。对比 OpenAI 便宜两个数量级,且中文能力一流。

指标 数值 说明
¥10 充值够用数月 DeepSeek API 费用
0.5 元/百万输入Token 输入价格
14 Docker容器数 Dify 全部组件
0 显卡要求 走 API 路线无需 GPU

02 环境准备

2.1 前置条件

  • 操作系统: Windows 10 19045(需支持 WSL 2)
  • 无独立显卡: 走 API 路线,不需要 GPU
  • 已有 Apache + PHP 环境: phpStudy(后面会提到端口冲突问题)
  • 网络环境: 国内网络,GitHub 和 Docker Hub 需要代理

2.2 安装 WSL 2 + Ubuntu

Docker Desktop 依赖 WSL 2 运行 Linux 容器。打开 PowerShell(管理员),执行:

powershell 复制代码
wsl --install -d Ubuntu --no-launch

安装完成后必须重启电脑,WSL 2 内核才会生效。

注意: 重启前可以先下载 Docker Desktop 安装包,重启后直接装,省一轮等待。

2.3 安装 Docker Desktop

Docker 官网下载 Windows 版安装包。安装时选择 Per-user installation (不需要管理员密码),勾选 Use WSL 2

安装完成后启动 Docker Desktop,等任务栏鲸鱼图标稳定(不再动画),表示 WSL 2 后端就绪。

坑 ① --- Docker 命令找不到

安装后新开终端 docker 命令找不到。原因是 Per-user 安装的 PATH 没有自动刷新到当前终端。手动添加:

powershell 复制代码
$env:PATH = "C:\Users\<用户名>\AppData\Local\Programs\DockerDesktop\resources\bin;" + $env:PATH

验证:docker --version 输出 Docker version 29.7.2 即正常。


03 配置国内镜像加速器(关键)

这是整个部署过程中最大的拦路虎。Docker Hub(registry-1.docker.io)在国内基本无法直连,所有镜像拉取都会超时。

错误信息:

复制代码
failed to resolve reference "docker.io/library/busybox:latest":
failed to do request: Head "https://registry-1.docker.io/v2/...":
dialing registry-1.docker.io:443 container via direct connection
because Docker Desktop has no HTTPS proxy: connecting to
registry-1.docker.io:443: dial tcp [...] connectex: A connection
attempt failed...

3.1 修改 daemon.json

编辑 %USERPROFILE%\.docker\daemon.json,添加 registry-mirrors

json 复制代码
{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.m.daocloud.io"
  ]
}

3.2 修复凭证助手

配置镜像后还会遇到第二个错误:

复制代码
error getting credentials - err: exec: "docker-credential-desktop":
executable file not found in %PATH%, out: ``

编辑 %USERPROFILE%\.docker\config.json,把 credsStore 设为 null

json 复制代码
{
  "auths": {},
  "credsStore": null,
  "currentContext": "desktop-linux"
}

💡 原因: docker-credential-desktop.exe 在 Docker Desktop 的 bin 目录中,但 docker compose 执行时的子进程 PATH 不包含该目录。拉取公共镜像不需要认证,直接禁用凭证助手即可。

3.3 重启 Docker Desktop 使配置生效

修改配置文件后必须重启 Docker Desktop:

powershell 复制代码
# 关闭所有 Docker 进程
Get-Process | Where-Object { $_.Name -match "docker|Docker" } | Stop-Process -Force

# 重新启动
Start-Process "$env:LOCALAPPDATA\Programs\DockerDesktop\Docker Desktop.exe"

# 等待 120 秒让 WSL 后端完全初始化
Start-Sleep -Seconds 120

# 验证
docker pull hello-world

关键经验: Docker Desktop 重启后 WSL 后端需要 至少 90-120 秒 才能完全就绪。如果在 60 秒内执行 docker compose up,守护进程会间歇性掉线。判断标准:docker info 能稳定返回 Server Version 即就绪。


04 部署 Dify

4.1 下载源码

GitHub 直接下载在国内基本超时,使用 ghproxy.net 代理:

powershell 复制代码
# 创建目录
New-Item -ItemType Directory -Path "D:\dify" -Force

# 通过代理下载
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest -Uri "https://ghproxy.net/https://github.com/langgenius/dify/archive/refs/heads/main.zip" -OutFile "D:\dify\dify.zip"

# 解压
Expand-Archive -Path "D:\dify\dify.zip" -DestinationPath "D:\dify" -Force

解压后源码在 D:\dify\dify-main,Docker 配置在 D:\dify\dify-main\docker 目录。

4.2 配置 .env

powershell 复制代码
cd D:\dify\dify-main\docker
Copy-Item .env.example .env

修改 .env 中的端口配置,避免和已运行的 Apache(80 端口)冲突:

复制代码
EXPOSE_NGINX_PORT=8080
EXPOSE_NGINX_SSL_PORT=8443

坑 ② --- 端口冲突

Dify 默认使用 80 端口,和已有的 Apache 服务冲突。Nginx 容器虽然能启动,但所有请求都被 Apache 拦截(返回 403)。改为 8080 后正常。

4.3 启动全部容器

powershell 复制代码
docker compose up -d

这会拉取 14 个容器镜像并启动,包括:Nginx、Dify API、Web、Worker、Plugin Daemon、Agent Backend、PostgreSQL、Redis、Weaviate(向量数据库)、Sandbox、SSRF Proxy 等。

拉取过程约 10-15 分钟(取决于网络),完成后验证:

powershell 复制代码
docker ps --format "table {{.Names}}\t{{.Status}}"
容器 作用 状态
docker-nginx-1 反向代理入口 Up
docker-api-1 Dify 后端 API Up (healthy)
docker-web-1 前端界面 Up
docker-worker-1 异步任务处理 Up
docker-db_postgres-1 PostgreSQL 数据库 Up (healthy)
docker-redis-1 Redis 缓存 Up (healthy)
docker-weaviate-1 向量数据库(知识库检索) Up
docker-plugin_daemon-1 插件守护进程 Up
docker-sandbox-1 代码沙箱 Up (healthy)

4.4 首次访问

浏览器打开 http://localhost:8080,首次会跳转到 /install 页面进行初始化设置(创建管理员账号)。

坑 ③ --- Install 页面一直加载

首次访问时 /install 页面可能一直转圈。原因是 API 容器还在执行数据库迁移(migration)。查看日志:docker logs docker-api-1 --tail 20,看到 Database migration successful!Booting worker with pid 后,Ctrl+F5 刷新即可。


05 配置 DeepSeek API

5.1 获取 API Key

  1. 打开 DeepSeek 开放平台,手机号注册
  2. 充值
  3. 进入「API Keys」→「创建 API Key」→ 复制保存(只显示一次)

5.2 在 Dify 中配置

  1. 登录 Dify 后台
  2. 进入「设置」→「模型供应商」
  3. 找到 DeepSeek,点击配置
  4. 粘贴 API Key,保存
  5. 选择模型 deepseek-chat(通用对话)或 deepseek-reasoner(深度思考)

完成: 配置完成后,Dify 就可以通过 DeepSeek API 驱动 AI 对话了。接下来可以创建知识库(上传文档),然后搭建问答应用或客服机器人。


06 踩坑时间线

以下是完整的部署时间线,标注了每个失败点和解决方式:

  • 03:00 --- 安装 WSL 2 + Ubuntu --- 一次成功,需重启
  • 03:10 --- 安装 Docker Desktop --- Per-user 模式,正常
  • 03:11 --- docker 命令找不到 → PATH 未刷新,手动添加 Docker bin 目录
  • 03:13 --- 下载 Dify 源码 --- ghfast.top 超时,换 ghproxy.net 成功(37.7MB)
  • 03:17 --- docker compose up --- 凭证助手 docker-credential-desktop 找不到
  • 03:18 --- 修复凭证后重试 --- Docker Hub 连不上(国内网络)
  • 03:19 --- 配置镜像加速器后重启 Docker --- 守护进程间歇性掉线
  • 03:25 --- 等待 120s 后 Docker 稳定,但 docker compose 又遇凭证错误
  • 03:32 --- 一条命令内完成:修复凭证 + 启动 Docker + docker compose up --- 全部镜像拉取成功,14 个容器启动
  • 03:39 --- Dify 访问 403 --- Nginx 80 端口被 Apache 占用
  • 03:40 --- 改端口为 8080,重启 Nginx 容器 --- HTTP 200,Dify 正常
  • 03:42 --- Install 页面一直加载 --- API 容器在迁移数据库,等迁移完成刷新即可
  • 03:45 --- Dify 初始化完成,配置 DeepSeek API --- 部署完成

07 总结与经验

技术栈最终状态

组件 版本 说明
Windows 10 19045 WSL 2 已启用
Docker Desktop 29.7.2 Per-user 安装,WSL 2 后端
Docker Compose v5.3.1 Docker Desktop 内置
Dify v1.16.1 14 个容器全部运行
PostgreSQL 15-alpine Dify 内置数据库
Redis 6-alpine Dify 内置缓存
Weaviate 1.27.0 向量数据库,知识库检索
DeepSeek API deepseek-chat LLM 供应商
Apache 2.4.39 已有服务,80 端口
Dify 访问地址 http://localhost:8080 避开 Apache 80 端口

5 个核心经验

经验 1 --- 镜像加速器是前提

国内环境部署 Docker 项目,第一步就是配 registry-mirrorsdocker.1ms.rundocker.m.daocloud.io 实测可用。不配加速器,所有镜像拉取都会超时。

经验 2 --- 凭证助手必须禁用

Docker Desktop 的 credsStore: desktop 在命令行环境下找不到 docker-credential-desktop.exe。拉取公共镜像不需要认证,直接设为 null

经验 3 --- Docker 重启后等够 120 秒

WSL 2 后端初始化慢,90 秒内守护进程可能不稳定。判断标准:docker info 能稳定返回版本号。

经验 4 --- 端口冲突提前规避

已运行 Apache/Nginx 的机器上部署 Docker 项目,务必检查端口冲突。Dify 默认 80 端口,改为 8080 一劳永逸。

经验 5 --- 一条命令搞定

沙箱环境在命令间可能清理后台进程。把「启动 Docker → 等待 → docker compose up」写在一条命令里,避免守护进程在命令间隔期被回收。

成本估算

项目 费用 说明
Dify 免费 MIT 开源
DeepSeek API ¥10 起 百万 token 约 1 元
服务器 ¥0 本地部署,无额外服务器
域名/SSL ¥0 本地访问,localhost:8080
总计 ¥10 几乎零成本启动

后续规划

  • 知识库建设: 上传企业文档(产品手册、FAQ、技术文档),Weaviate 自动向量化检索
  • 客服机器人: 在 Dify 中创建应用,关联知识库,生成 API 接入网站
  • 多模型对比: 接入通义千问、Kimi 等国内 API,对比效果
  • 商业化: 淘宝上架 Dify 部署服务(参考定价 ¥500-1500)

@漏刻有时

Dify v1.16.1 + DeepSeek API + Docker Desktop 29.7.2

相关推荐
weixin_549808361 小时前
人力资源数字化转型:从工具堆叠到AI原生架构的组织级跃迁路径
大数据·人工智能
l0001091 小时前
图书馆静谧环境构建:主流声学品牌产品与服务梳理
大数据·人工智能·声音
倔强的石头1061 小时前
【机器学习】机器学习三大范式_监督无监督强化学习概览
人工智能·机器学习
DO_Community1 小时前
多模型路由怎么选?2026 年 4 款主流方案对比
人工智能
CypressTel1 小时前
Google发布Gemini 3.7 Flash:企业为何要计算AI智能体的任务总成本——赛柏特AI快讯
人工智能
wujian83111 小时前
怎么用千问生成word文档:从「格式崩」到「一键过」,AI导出鸭打通最后半厘米
人工智能·ai·c#·word·豆包·deepseek·ai导出鸭
一拳不是超人1 小时前
DeepSeek Harness 为什么敢说"一切皆插件"?拆透 Cordis 引擎的五大核心机制
前端·人工智能·agent
安全指北针2 小时前
AI编程工具供应链安全实战:当你的AI编码助手成为跳板
人工智能·安全·ai编程
fo安方2 小时前
视频——工具——视频——ppt——AI生成ppt
人工智能·powerpoint