基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程
笔记哥 /
04-07 /
36点赞 /
0评论 /
232阅读
# 下载安装Docker
Docker官网:https://www.docker.com/
## **自定义Docker安装路径**
Docker默认安装在C盘,大小大概2.9G,做这行最忌讳的就是安装软件全装C盘,所以我调整了下安装路径。
新建安装目录:E:\MySoftware\Docker并将Docker安装包放在目录内,这里有个小细节,**安装包名称一定要改下**,官网下载下来的名称叫:Docker Desktop Installer.exe,一定要修改一下,不能用这个名字,否则等下在CMD命令安装的时候就会报错说被资源占用,因为Docker在安装时会解压一个一模一样名称的exe程序,重名就会导致安装失败,所以一定要改下名字。

在文件路径输入cmd回车

输入:
```csharp
```
```csharp
.\"Docker.exe" install --installation-dir=E:\MySoftware\Docker
```
```csharp
语法:.\”安装程序名称” install --installation-dir=指定Docker安装的路径
```

安装完成后会提示Installation sueceeded

桌面会出现Docker图标

启动Docker这里很多人会报这个错,这个是因为电脑没有WSL导致无法启动Docker容器。

# 下载WSL
进入微软官网按步骤执行即解决,几分钟完成。

用**管理员身份打开Powershell窗口**,粘贴微软官网的命令执行下载即可
粘贴执行:
```csharp
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
```
```csharp
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
```
```csharp
wsl --set-default-version 2
```

下载完后会启动一个这个页面,可以关闭。

注:完成内核更新包安装后需重启系统(微软官方指南),再启动下Docker,出现这个界面就代表WSL和Docker都启动成功了。

## Docker镜像存储迁移
这时进入Docker设置中,将Docker的镜像资源存放路径改一下,不然都会下载都C盘。

## Docker**镜像源加速配置**
**至关重要的地方来了**,打开Docker的设置中的-->Docker Engine,然后把国内的镜像源复制进去保存,我这里提供一些,如果失效了就百度找新的。
```csharp
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://noohub.ru",
"https://huecker.io",
"https://dockerhub.timeweb.cloud",
"https://0c105db5188026850f80c001def654a0.mirror.swr.myhuaweicloud.com",
"https://5tqw56kt.mirror.aliyuncs.com",
"https://docker.1panel.live",
"http://mirrors.ustc.edu.cn/",
"http://mirror.azure.cn/",
"https://hub.rat.dev/",
"https://docker.ckyl.me/",
"https://docker.chenby.cn",
"https://docker.hpcloud.cloud",
"https://docker.m.daocloud.io"
]
}
```

保存镜像源后就可以试一下拉取镜像,如果拉取不成功也可以重启下Docker,还是不行提示超时就说明镜像源失效了,就在网上搜索下新的镜像源。
## 测试拉取镜像
在cmd命令窗口输入:
```csharp
docker pull hello-world
```
出现这个Status: Dowloaded newer image for hello-world:latest就代表镜像源没有问题。

#
**安装** **Dify**
## 下载Dify代码包
进入github下载Dify代码包:

解压代码包后,把压缩后的文件夹复制到自己想要安装的目录下,这里复制一下.env.example文件,然后重命名一下改成.env

在当前文件路径下输入CMD回车

## 拉取Dify依赖镜像资源
粘贴以下命令回车,会自动下载一些依赖资源。如果你的下载失败就是镜像源失效了,换一个镜像源,重新拉取镜像。
```csharp
docker-compose up -d
```

下载完成

回到Docker可以都看到已经下载好的镜像全部都显示了,并且都在运行。

##
**进入** **Dify后台**
输入 Server Error报错,这是因为镜像下载来后,有部分镜像还在启动中或未启动,这时候将所有镜像重启一次才可以。

重启所有镜像

## 创建管理员用户
重新进入Dify管理后台,首次进入需创建管理员用户。

创建管理员用户后,将进入登录界面。

登录成功

## 添加AI模型
点击右上角头像-设置
成员这里可以创建企业内成员进行登录使用。

选择模型供应商
这里我本地已经安装部署好了Ollama和Deepseek R1和BGE-M3模型,如果没有部署好的请看我这篇文章**:本地电脑部署DeepSeek 大模型AI**

由于我本地已经安装好了Ollama,所以就找到Ollama,点击安装插件,其他供应商选择对应安装。下载可能稍慢,请耐心等待。


添加模型时,若不知模型名称,可在CMD中输入Ollama list查看本地模型名称并复制。

模型类型:
推理模型 → LLM
嵌入模型 → Text Embedding
模型名称就把刚刚复制下来的粘贴上去就可以了。
这里IP地址要注意了,由于我没有用Docker容器里部署Ollama,而是在本地电脑安装的Ollama,这里对IP就要进行特殊处理下了,需要改为:
网络通信原理:
host.docker.internal为Docker内置域名解析,实现容器与宿主机服务的桥接。简单说就是Docker自己和我们电脑主机网络做了一个映射关系。

模型添加完成

## 创建应用
其实我也不太会使用,就简单粗糙的做个示范吧,要深入研究需要找下资料学习下。
这里我选择创建聊天助手(每个不同应用的作用不一样,选择与自己相符的就行)

添加一些提示词、变量、知识库、模型,设置好后在右边可以调试预览效果,调试完成后就可以发布应用了。


这里提一句,由于我自己的电脑资源很一般,所以每次一提问的时候资源就占比很高,不过等AI思考完毕后资源占用会下降。

测试结果,虽然回答是错误的。

# 知识库测试
我这里测试了下知识库检索,上传了6个本地文档。

然后我简单的定义了提示词后,对模型提出问题:结合知识库帮我找出住在向阳里桃源弄的人员的电话和姓名。

然后真的回答对了,全体起立!

这是源文件里的内容。

# WSL资源控制
由于我是针对个人学习,在学习完后我发现我的电脑内存占比一直居高不下,在任务管理器查到了是一个Vmmem的进程占用,大概也知道应该是虚拟机类的占用。
搜索了下网上资源了解到vmmem是一个由WSL(Windows Subsystem for Linux)创建的虚拟进程,主要用于管理WSL2的内存和CPU资源。当WSL2运行时,Vmmem进程会占用大量的内存和CPU资源,以确保虚拟机的最佳性能。然而,这可能会导致主机系统的其他应用程序运行缓慢或无法正常运行。

## 关闭WSL服务
所以如果不用的时候可以关闭掉WSL服务。
在cmd里输入:
```csharp
wsl --shutdown
```

关闭后电脑资源就回到正常状态了。
## 启动WSL服务
那如果我们后再用的时候就重新启动WSL服务就可以。
在cmd输入:
```csharp
wsl
```

# 最后的最后
关于Dify的作用文中提到的只是冰山一角,它真正的厉害之处是它的工作流,由于博主知识有限,只能教大家部署应用,具体的功能开发使用还要大家自行学习,后续博主也会去学习Dify的相关知识,有机会的话就再开一贴。如有讲的不对的地方,敬请指正。
附上Dify的官方操作手册地址:
这是我整个学习过程中遇到的问题,最后结合百度和AI最后都完成解决了。
总结几个小坑:
1、WSL2的安装。
2、Docker容器镜像源的设置。
3、Dify依赖镜像的拉取。
4、Dify添加模型时IP映射设置。
本文来自投稿,不代表本站立场,如若转载,请注明出处:http//www.knowhub.vip/share/2/2057
- 热门的技术博文分享
- 1 . ESP实现Web服务器
- 2 . 从零到一:打造高效的金仓社区 API 集成到 MCP 服务方案
- 3 . 使用C#构建一个同时问多个LLM并总结的小工具
- 4 . .NET 原生驾驭 AI 新基建实战系列Milvus ── 大规模 AI 应用的向量数据库首选
- 5 . 在Avalonia/C#中使用依赖注入过程记录
- 6 . [设计模式/Java] 设计模式之工厂方法模式
- 7 . 5. RabbitMQ 消息队列中 Exchanges(交换机) 的详细说明
- 8 . SQL 中的各种连接 JOIN 的区别总结!
- 9 . JavaScript 中防抖和节流的多种实现方式及应用场景
- 10 . SaltStack 远程命令执行中文乱码问题
- 11 . 推荐10个 DeepSeek 神级提示词,建议搜藏起来使用
- 12 . C#基础:枚举、数组、类型、函数等解析
- 13 . VMware平台的Ubuntu部署完全分布式Hadoop环境
- 14 . C# 多项目打包时如何将项目引用转为包依赖
- 15 . Chrome 135 版本开发者工具(DevTools)更新内容
- 16 . 从零创建npm依赖,只需执行一条命令
- 17 . 关于 Newtonsoft.Json 和 System.Text.Json 混用导致的的序列化不识别的问题
- 18 . 大模型微调实战之训练数据集准备的艺术与科学
- 19 . Windows快速安装MongoDB之Mongo实战
- 20 . 探索 C# 14 新功能:实用特性为编程带来便利