在 Win11 环境下搭建Docker + Dify + Ollama 本地 AI Agent

在 Win11 环境下搭建Docker + Dify + Ollama 本地 AI Agent

这是我的第一篇博客,如果有不好的地方,还请多多指教。

可以先看文章内容,如果觉得麻烦的话,其实扣子是个不错的选择。

扣子网址:https://www.coze.cn/,打开后在左侧点击扣子编程。


正式开始:

我的配置介绍:

我的配置 RTX 4060 Laptop + 8GB 显存 + 16GB 内存

以下是我的从零搭建的步骤:

第一步:下载Docker

Docker官网:https://www.docker.com/products/docker-desktop/

Docker直接下载地址(点击以下链接即可):

Download for Windows - AMD64(适用于大部分电脑)

Download for Windows - ARM64

第二步:将自己的配置发给AI,询问AI我的配置适合什么大模型

我问了Gemini,它给出以下三个大模型:

推荐模型核心优势建议用途显存建议
Qwen2.5-Coder-7B中文适配王者。对 Java 常用框架(Spring Boot, Mybatis)支持极佳。日常学习与 Debug。当你需要快速查语法或改 Bug 时首选。Q8_0 量化 (约 7.5GB)
DeepSeek-Coder-V3 (Small)代码逻辑天花板。V3 版本在处理复杂 Java 设计模式和算法上非常强悍。核心逻辑开发。遇到复杂的 Agent 逻辑编排或算法题时,用它更稳。Q4_K_M 量化 (约 8-9GB)
Llama-4-8B (Maverick)Agent 生态最强。作为 2026 年的标杆模型,各类 Agent 框架对其兼容性最好。AI Agent 架构学习。学习如何调用工具、处理多轮对话状态。Q8_0 量化 (约 8GB)

给出这三个的理由:

1:国内开发环境:Qwen (通义千问) 针对中文技术文档和国内大厂常用的中间件有专门优化,写出来的注释和命名更符合国内习惯。

2:Agent 进阶: 既然你想研究 Agent,Llama-4-8B 是必须的。目前主流的开源 Agent 框架(如 LangGraph, CrewAI)几乎都是优先适配 Llama 系列,学习成本最低。

3:显存容错: 你的 8GB 显存跑 14B 模型(如 DeepSeek V3 小参数版)会稍微挤占一点内存(RAM),速度会降到 15-20 token/s,虽然慢一点,但逻辑会比 7B 深刻很多。

第三步:下载Ollama(预计占用5.12G)

Ollama网址:https://ollama.com/

Ollama直接下载链接:https://ollama.com/download/OllamaSetup.exe

点击 Download 开始下载

注意:Ollama会强制安装在 C 盘的程序文件夹中,而且在安装过程中不会询问你想安装在哪里,即是软件本身和模型下载地址默认在C盘。

下载完后,可以将模型下载地址进行更改(这里我将下载模型地址放在了E盘的OllamaModels文件夹)

Ollama环境配置:

  • 按下键盘上的 Win + S,搜索“环境变量”,选择“编辑系统环境变量”。
  • 在弹出的窗口中点击右下角的“环境变量”。
  • 在“用户变量”区域点击“新建”。
  • 变量名OLLAMA_MODELS
  • 变量值OllamaModels文件夹位置,比如我的就是E:\OllamaModels

记得连续点击三个确定。

第四步:下载大模型

在OllamaModels的地址框中输入cmd来打开终端

在终端输入:

ollama run qwen2.5-coder:7b

(这里是下载Qwen2.5-Coder-7B模型,预计4.36 GB

如果是要下载其他主流的模型(也可以问AI):

#DeepSeek-R1(目前最火的推理模型): ollama run deepseek-r1:7b #Llama 3.2 / 3.3(Meta 开源标杆): ollama run llama3.2 # 3B轻量版,适合普通电脑 ollama run llama3.3 # 70B强力版,需要较高显存 #Qwen 2.5 / 3(阿里通义千问,中文支持极佳): ollama run qwen2.5 # 综合实力均衡 ollama run qwen3 # 最新版本 #Qwen2.5-Coder(目前开源代码模型梯队最顶尖): ollama run qwen2.5-coder:7b #CodeLlama(Meta 专为编程优化的模型): ollama run codellama #Gemma 3(Google 最新开源模型,支持视觉识图): ollama run gemma3 #Llama 3.2 Vision: ollama run llama3.2-vision 

可能在下载的时候会用到的命令:

功能命令
查看已下载的模型ollama list
仅下载不运行ollama pull <模型名>
查看正在运行的模型ollama ps
删除某个模型ollama rm <模型名>
强制停止某个模型ollama stop <模型名>

如果出现:

pulling manifest pulling 60e05f210007: 6% ▕███ ▏ 280 MB/4.7 GB 1.1 MB/s 1h9m

那就说明开始下载了。

如果你在下载Ollama完后将Ollama的文件夹进行移动,终端可能显示:

'ollama' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

说明Ollama的Path 环境变量没有更改,需要打开环境变量寻找Path变量里的Ollama,将Ollama地址改为当前所在地址。

记得连续点击三个确定。

修改完后打开新的终端后,可以在终端输入

ollama --version

如果出现:

ollama version is 0.15.4

说明环境变量已经配置成功了

如果是:

Warning: could not connect to a running Ollama instance Warning: client version is 0.15.4

也不要怕,出现这个 Warning: could not connect 的警告,是因为 Ollama 的后端服务还没有启动。双击运行 ollama app.exe就好了。

如果已经打开了Ollama却还是显示Warning: could not connect,按照以下步骤即可解决:

第一步:清空所有进程(重置状态)

  • 关掉所有的终端窗口。
  • 右键任务栏的Ollama,右键点击 Quit
  • 打开任务管理器(Ctrl+Shift+Esc),在“详细信息”里找 ollama.exe,如果有,全部右键“结束任务”。

第二步:只启动一次

双击运行 ollama app.exe

第三步:在新的终端输入

ollama list

如果显示:

​ >ollama list NAME ID SIZE MODIFIED ​

说明成功了,如果依然 Warning:说明你的系统变量 OLLAMA_HOST 可能被意外设置了。输入 set OLLAMA_HOST 看看,如果没有这个变量,那就是正常的。

为什么是空白?因为你还没开始下载模型。

检查环境变量是否配置成功:

在新建的终端中分别输入:

where ollama

echo %OLLAMA_MODELS%

如果输出结果分别是:

Ollama 可执行文件所在的磁盘路径

OllamaModels文件夹所在地址

下载大模型成功的标志:

当你看到 CMD 窗口出现以下内容时,说明模型已经下载好了,你可以直接开始输入你需要提问的内容。

>>> Send a message 

或者可以在新的终端输入来验证:

ollama list

如果显示下面的内容,那就是下载好了:(我这边是下载了qwen2.5-coder:7b模型)

>ollama list NAME ID SIZE MODIFIED qwen2.5-coder:7b dae161e27b0e 4.7 GB 4 hours ago

注:下载的时间较长,我们在等待下载完成的同时我们可以进行第四步:下载Dify。

第五步:下载Dify

打开终端,分别输入以下内容:

# 1. 下载 Dify 源代码 git clone https://github.com/langgenius/dify.git # 2. 进入部署目录 cd dify/docker # 3. 复制配置文件 copy .env.example .env # 4. 启动 Dify (这会下载很多镜像,建议在网速快的时候操作) docker-compose up -d

当你运行 docker compose up -d 时,它会开始下载大概 10 多个容器镜像(包括数据库 PostgreSQL、缓存 Redis、Dify 后端等)可能需要一段时间。

第六步:打开Dify页面

启动成功后,在浏览器访问 http://localhost 或者输入 http://127.0.0.1:8090 就能看到 Dify 的界面了。加载需要一定时间,可如果一直都在加载界面的话,可以去终端输入:

>docker-compose ps

如果显示以下内容,说明是关键组件(api, web, nginx, db)全部处于 Up 状态:

\dify\docker>docker-compose ps NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS docker-api-1 langgenius/dify-api:1.12.0 "/bin/bash /entrypoi…" api 14 minutes ago Up 14 minutes 5001/tcp docker-db_postgres-1 postgres:15-alpine "docker-entrypoint.s…" db_postgres 14 minutes ago Up 14 minutes (healthy) 5432/tcp docker-nginx-1 nginx:latest "sh -c 'cp /docker-e…" nginx 14 minutes ago Up 14 minutes 0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp docker-plugin_daemon-1 langgenius/dify-plugin-daemon:0.5.3-local "/bin/bash -c /app/e…" plugin_daemon 14 minutes ago Up 14 minutes 0.0.0.0:5003->5003/tcp, [::]:5003->5003/tcp docker-redis-1 redis:6-alpine "docker-entrypoint.s…" redis 14 minutes ago Up 14 minutes (healthy) 6379/tcp docker-sandbox-1 langgenius/dify-sandbox:0.2.12 "/main" sandbox 14 minutes ago Up 14 minutes (healthy) docker-ssrf_proxy-1 ubuntu/squid:latest "sh -c 'cp /docker-e…" ssrf_proxy 14 minutes ago Up 14 minutes 3128/tcp docker-weaviate-1 semitechnologies/weaviate:1.27.0 "/bin/weaviate --hos…" weaviate 14 minutes ago Up 14 minutes docker-web-1 langgenius/dify-web:1.12.0 "/bin/sh ./entrypoin…" web 14 minutes ago Up 14 minutes 3000/tcp docker-worker-1 langgenius/dify-api:1.12.0 "/bin/bash /entrypoi…" worker 14 minutes ago Up 14 minutes 5001/tcp docker-worker_beat-1 langgenius/dify-api:1.12.0 "/bin/bash /entrypoi…" worker_beat 14 minutes ago Up 14 minutes 5001/tcp

如果网页一直在加载,最可能的原因是端口冲突网络代理干扰。我们按顺序快速解决:

1. 强制使用 IP 访问(跳过 localhost 解析)

有时候 Windows 的 localhost 解析会有延迟。请直接在浏览器地址栏输入: http://127.0.0.1 (注意不要加 8080 或 5001,Dify 默认映射的是 80 端口)。


2. 检查 80 端口是否被占用

由于 docker-nginx-1 虽然显示 Up,但如果 80 端口被你电脑上其他的占用了,请求就进不去。

1:新开一个终端

2:在终端输入:

> netstat -ano | findstr :80

如果返回的最后一列 PID 对应的程序不是 Docker,那么端口就冲突了。解决方法

方案一:找出并杀掉占用进程(最推荐)

打开任务管理器(Ctrl + Shift + Esc),切换到 “详细信息” 选项卡,点击 “PID” 列进行排序,找到 47809596。如果是 System (PID 4) 或者 inetinfo.exe,那是 Windows 自带的服务,通常需要去“启用或关闭 Windows 功能”里关掉 Internet Information Services (IIS)。然后再访问 http://127.0.0.1。

方案二:给 Dify 换个端口(最稳妥,不影响系统)

如果你不想动系统服务,我们直接让 Dify 避开 80 端口:

  1. 访问新地址: 在浏览器输入:http://127.0.0.1:8090

重新启动

> docker-compose up -d 

修改配置文件: 用记事本打开 docker-compose.yaml。 找到 nginx: 服务下的 ports: 部分,你会看到:(CTRL+F开始关键词搜索,也可以交给AI来找)

ports: - "80:80" - "443:443" 

把它改成(比如改成 8090):

ports: - "8090:80" - "443:443" 

停止 Dify

> docker-compose down 

3. 关闭梯子

它们可能会拦截 localhost 的请求。


4. 终极重启大法

如果上述都不行,可能是某个容器内部卡住了,在新的终端执行这个命令组合:

> docker-compose stop > docker-compose start 

startup -d 快,因为它只是启动已经建好的容器,不重新检查配置)。


5. 现状确认

  • Ollama 模型: 如果Ollama 模型没下好,它在高强度占用你的硬盘 IO,这会导致 Docker 响应极慢。
  • 内存检查: 看看任务管理器里的内存占用。如果已经到了 15GB/16GB,Dify 这种重型应用会因为频繁使用虚拟内存而导致网页“假死”。

如果还是不行,可以在终端输入,检查 API 容器的实时进度:

docker-compose logs -f api

如果看到很多 MIGRATINGSUCCESS:说明它正在拼命创建数据库表,请继续耐心等待 3-5 分钟。

如果看到 Error: Connection refused:说明 API 还没连上数据库容器,可以再等一会。

也可以在浏览器页面按下 Ctrl + F5 进行强制刷新

或者尝试用浏览器的无痕模式(Ctrl + Shift + N重新访问 http://127.0.0.1:8090

终极解决(如果超过 10 分钟还没动静):

如果日志一直不更新,可能是由于内存不足导致某个关键容器启动失败,请重启 Dify:

docker-compose restart api web

如果刷新后依然超过 1 分钟没动静,可以在终端运行,单独重启一下前端容器

docker-compose restart web

重启后可以输入来查看前端日志:

docker-compose logs -f web

记得要重新访问 http://127.0.0.1:8090或者刷新页面。

还是不行可以点击F12,查看控制台,如果出现了反复出现的红色报错:

TypeError: Failed to construct 'URL': Invalid URL 表明 Dify 的前端代码在尝试拼接访问地址时失败了。这通常是因为 .env 配置文件中的某个 URL 格式不规范(比如多了一个空格、少了一个 http:// 或者环境变量为空)。

1:检查并修正 .env 配置文件

从资源管理器中打开 \dify\docker 目录,用记事本打开 .env 文件。

检查空值或非法字符:确保没有任何一项 URL 开头的变量末尾带着空格。

补充协议头:确保所有涉及 URL 的变量都以 http://https:// 开头。

重点排查项:(可以给AI排查)

  • CONSOLE_API_URL
  • CONSOLE_WEB_URL
  • SERVICE_API_URL
  • APP_API_URL
  • APP_WEB_URL

可以统一设为 http://127.0.0.1:8090(这个是我的本地端口号,注意不要弄错了)

# 修改前:CONSOLE_API_URL= # 修改后: CONSOLE_API_URL=http://127.0.0.1:8090 # 修改前:CONSOLE_WEB_URL= # 修改后: CONSOLE_WEB_URL=http://127.0.0.1:8090 # 修改前:SERVICE_API_URL= # 修改后: SERVICE_API_URL=http://127.0.0.1:8090 # 修改前:APP_API_URL= # 修改后: APP_API_URL=http://127.0.0.1:8090 # 修改前:APP_WEB_URL= # 修改后: APP_WEB_URL=http://127.0.0.1:8090 # 修改这个触发地址 [cite: 5] TRIGGER_URL=http://127.0.0.1:8090

并在文件末尾检查这个模板地址:

# 修改前:ENDPOINT_URL_TEMPLATE=http://localhost/e/{hook_id} # 修改后: ENDPOINT_URL_TEMPLATE=http://127.0.0.1:8090/e/{hook_id}

修改完后同步 EXPOSE 端口设置,为了保险,建议在 .env 里也同步一下这个变量 :

# 找到这两行 EXPOSE_NGINX_PORT=80 EXPOSE_NGINX_SSL_PORT=443 # 修改为: EXPOSE_NGINX_PORT=8090 EXPOSE_NGINX_SSL_PORT=443

修改完 .env 后,在新的终端输入:

#彻底移除旧的配置残留 docker-compose down #重新根据新环境变量创建 docker-compose up -d

修改完 .env 后让 Docker 重新读取配置:

在终端输入:

#关闭 docker-compose down #启动 docker-compose up -d

第七步:成功打开Dify页面

成功打开后注册管理员账户,提供邮箱、名字、密码。然后就成功进入到Dify页面了。

鼠标移至右上角,打开设置。

点击模型供应商,进行安装Ollama(我这边已经安装完成了)

安装完后就是上图所示,点击添加模型:

模型类型:LLM

模型名称:(输入你所下载的模型名称,比如我下载的:qwen2.5-coder:7b)

基础 URL:http://host.docker.internal:11434

模型类型:对话

模型上下文长度:(虽然默认是 4096,但 Qwen2.5 支持更长。如果和我的一样是 16GB 的内存,设为 819216384 比较稳妥,既能看长代码又不会爆内存)

最大 token 上限:4096

是否支持 Vision (视觉) (Qwen2.5-Coder 是纯文本/代码模型,不支持图片识别,建议选“否”以免报错)。

是否支持函数调用 (Tool Call):是(这个是AI Agent 核心功能——比如让 AI 自动去查数据库或运行代码,全靠这个功能)

点击添加。

点击右上角的X或者点击ESC退出设置页面,回到主页面。

恭喜你完成了从零搭建 Dify + Ollama 本地 AI Agent!

下一次打开的步骤:

1:打开 Docker Desktop

2:打开 ollama

3:在 ~\dify\docker 进入终端,输入 docker-compose up -d

4:打开网址 http://127.0.0.1:8090(记得端口号不要输错,这个是我的端口号)

注意!!!:

输入完 docker-compose up -d 后,关闭终端不会关闭。需要输入,才可以关闭。

docker-compose down

谢谢你的观看。

Read more

20分钟一篇!!!最好用详细的AI写作论文综述(开题报告、最新技术)方法总结(字数、时效性和参考文献都严格一致符合要求、参考文献和正文引用都真实存在),模型gemini 2.5 pro

具体流程: 在自己想要引用的网站,如ieee xplore、知网、web of science这些网站中使用高级搜索、找到自己想要引用的文献(也就是和自己写的方向高度相关的文献),选择指定的年份(如比较新的23-25年),然后批量选择后选中批量导出文献,选择自己需要的文献格式(ieee格式,中国国标格式等),然后将导出的文献保存在txt文件中,这些就是自己要引用的所有文献,一般建议多导出几十条,这样可以让AI从中挑选合适的论文,去除一些不适合的论文。 然后在gemini 2.5 pro模型中,开启联网模式(ground with google search),将自己的参考文献通过文件上传(没有的话就直接将参考文献复制粘贴到输入框里),然后贴入自己的prompt(也就是自己对这个生成论文的细节要求(如领域、题目、格式等要求),里面要提到“请基于我提供的参考文献【50篇ieee和20篇cnki的】,从中选取50篇合适的论文,撰写一篇学习报告”),然后生成后,检查一些参考文献是否真实,真实无误的话就没问题啦! prompt如下:  你是一名资深信息安全技术研究员,擅长文献检索、前

By Ne0inhk

AI绘画辅助新思路:M2FP提取人体轮廓用于姿态迁移

AI绘画辅助新思路:M2FP提取人体轮廓用于姿态迁移 在AI绘画与数字内容创作领域,姿态迁移(Pose Transfer)是一项极具挑战性但也极具价值的技术。它允许我们将一张参考图像中的人物姿态“迁移”到另一张目标人物图像上,从而实现服装、风格的跨图像复用。然而,传统方法往往依赖于关键点检测(如OpenPose)生成骨架图,这种方式对复杂姿态、多人场景或遮挡情况处理能力有限。 本文将介绍一种全新的技术路径——基于M2FP模型的多人人体解析服务,通过像素级语义分割提取精确的人体轮廓与部位信息,作为姿态迁移的高质量引导图。相比传统骨架法,该方案能保留更多细节(如发型、衣摆走向),显著提升生成结果的真实感和结构一致性。 🧩 M2FP 多人人体解析服务 (WebUI + API) 项目背景与核心价值 在当前AIGC浪潮下,AI绘图工具(如Stable Diffusion)已广泛应用于插画设计、虚拟试穿、动画制作等领域。但一个长期存在的痛点是:如何让AI准确理解并复用真实人物的姿态? 现有主流方案多采用OpenPose等关键点检测器生成二维关节点连线图(skeleton map)

By Ne0inhk
Continue插件实现本地部署一个“cursor”或“github copilot”

Continue插件实现本地部署一个“cursor”或“github copilot”

本地部署 AI 代码助手,制作一个 Cursor/GitHub Copilot 的替代版本 一 需求分析 * 本地部署的定义与优势(数据隐私、离线使用、定制化)。 * Cursor 与 GitHub Copilot 的功能(代码补全、对话交互、模型差异)。 * 本地部署的AI 代码助手适用场景:企业内网开发、敏感数据环境。 二 环境准备与工具选择 * 硬件要求:GPU 要对应上你所部署的模型大小 * 模型选择:qwen2.5-14b-instruct (这里选择千问的大模型) 三 部署开源模型 这里不详细介绍具体的大模型部署的具体过程,部署完成之后,你应该得到对应的模型的以下信息 model: "qwen2.5-14b-instruct" apiBase: "http://你的ip地址(自己的本机就写localhost)

By Ne0inhk

白嫖专业版!Github Copilot Pro竟然可以免费使用

今天有个好消息要和大家分享: GitHub Copilot 已在 Visual Studio Code 上免费开放! 无论是谁,都能畅享 AI 助力下的高效开发新体验! 如何免费在vscode中使用copilot * 下载最新版本的 VS Code https://code.visualstudio.com/Download 如果下载慢,可以通过下面的网盘链接获取: https://pan.quark.cn/s/3fb6dcedfed8 * 打开vscode编译器,按照下面步骤操作 这时候就可以看到账户已经启用Copilot Free copilot Free 和copilot Pro主要功能对比 功能FreePro消息和互动每月最多 50 个无限实时代码建议每月最多 2,000无限上下文感知编码支持和解释支持支持VS Code 中的多文件编辑支持支持切换模型支持支持GitHub 中的代码审查不支持支持拉取请求中的 Copilot Workspace不支持支持VS Code 中的 Java

By Ne0inhk