本次演示部署环境:Windows 10专业版,转载请说明出处

下载安装Docker

  Docker官网:https://www.docker.com/

自定义Docker安装路径

  Docker默认安装在C盘,大小大概2.9G,做这行最忌讳的就是安装软件全装C盘,所以我调整了下安装路径。

新建安装目录:E:\MySoftware\Docker并将Docker安装包放在目录内,这里有个小细节,安装包名称一定要改下,官网下载下来的名称叫:Docker Desktop Installer.exe,一定要修改一下,不能用这个名字,否则等下在CMD命令安装的时候就会报错说被资源占用,因为Docker在安装时会解压一个一模一样名称的exe程序,重名就会导致安装失败,所以一定要改下名字。

  在文件路径输入cmd回车

输入:


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

  安装完成后会提示Installation sueceeded

  桌面会出现Docker图标

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

下载WSL

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

https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package

  用管理员身份打开Powershell窗口,粘贴微软官网的命令执行下载即可

粘贴执行:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --set-default-version 2

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

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

Docker镜像存储迁移

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

Docker镜像源加速配置

  至关重要的地方来了,打开Docker的设置中的-->Docker Engine,然后把国内的镜像源复制进去保存,我这里提供一些,如果失效了就百度找新的。

{
"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命令窗口输入:

docker pull hello-world

  出现这个Status: Dowloaded newer image for hello-world:latest就代表镜像源没有问题。

安装Dify

下载Dify代码包

  进入github下载Dify代码包:https://github.com/langgenius/dify

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

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

拉取Dify依赖镜像资源

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

docker-compose up -d

  下载完成

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

进入Dify后台

  输入http://127.0.0.1/会自动打开Dify的页面,有人会遇到这个Internal Server Error报错,这是因为镜像下载来后,有部分镜像还在启动中或未启动,这时候将所有镜像重启一次才可以。

  重启所有镜像

创建管理员用户

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

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

  登录成功

添加AI模型

  点击右上角头像-设置

成员这里可以创建企业内成员进行登录使用。

  选择模型供应商

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

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

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

模型类型:

推理模型 → LLM
嵌入模型 → Text Embedding

模型名称就把刚刚复制下来的粘贴上去就可以了。

这里IP地址要注意了,由于我没有用Docker容器里部署Ollama,而是在本地电脑安装的Ollama,这里对IP就要进行特殊处理下了,需要改为:http://host.docker.internal:11434。

网络通信原理:
host.docker.internal为Docker内置域名解析,实现容器与宿主机服务的桥接。简单说就是Docker自己和我们电脑主机网络做了一个映射关系。

  模型添加完成

创建应用

  其实我也不太会使用,就简单粗糙的做个示范吧,要深入研究需要找下资料学习下。

这里我选择创建聊天助手(每个不同应用的作用不一样,选择与自己相符的就行)

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

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

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

知识库测试

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

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

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

  这是源文件里的内容。

WSL资源控制

  由于我是针对个人学习,在学习完后我发现我的电脑内存占比一直居高不下,在任务管理器查到了是一个Vmmem的进程占用,大概也知道应该是虚拟机类的占用。

  搜索了下网上资源了解到vmmem是一个由WSL(Windows Subsystem for Linux)创建的虚拟进程,主要用于管理WSL2的内存和CPU资源。当WSL2运行时,Vmmem进程会占用大量的内存和CPU资源,以确保虚拟机的最佳性能。然而,这可能会导致主机系统的其他应用程序运行缓慢或无法正常运行‌。

关闭WSL服务

  所以如果不用的时候可以关闭掉WSL服务。

在cmd里输入:

wsl --shutdown

  关闭后电脑资源就回到正常状态了。

启动WSL服务

  那如果我们后再用的时候就重新启动WSL服务就可以。

在cmd输入:

wsl

最后的最后

  关于Dify的作用文中提到的只是冰山一角,它真正的厉害之处是它的工作流,由于博主知识有限,只能教大家部署应用,具体的功能开发使用还要大家自行学习,后续博主也会去学习Dify的相关知识,有机会的话就再开一贴。如有讲的不对的地方,敬请指正。

附上Dify的官方操作手册地址:https://docs.dify.ai/zh-hans

  这是我整个学习过程中遇到的问题,最后结合百度和AI最后都完成解决了。

总结几个小坑:

1、WSL2的安装。

2、Docker容器镜像源的设置。

3、Dify依赖镜像的拉取。

4、Dify添加模型时IP映射设置。

基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程的更多相关文章

  1. Ubuntu 搭建Web服务器(MySQL+PHP+Apache)详细教程

    Ubuntu 搭建Web服务器(MySQL+PHP+Apache)详细教程 看了好多人的博客,有的不全 or 有问题,整理了一下,适合小白 新手先整理几个小问题 1.为啥使用 Linux 搭建服务器? ...

  2. 搭建基于Docker社区版的Kubernetes本地集群

    Kubernetes的本地集群搭建是一件颇费苦心的活,网上有各种参考资源,由于版本和容器的不断发展,搭建的方式也是各不相同,这里基于Docker CE的18.09.0版本,在Mac OS.Win10下 ...

  3. 基于Docker的服务器搭建

    -----------基于Docker的多种服务器搭建----------- 开发环境 本机上的虚拟机 Centos7.4 Docker1.13.1 Openssl1.1.1 1 Nginx 1.1 ...

  4. 基于Docker+Jenkins+Gitlab搭建持续集成环境

    随着DevOps理念和敏捷理念的发展,我们希望通过自动化技术,加快项目的迭代.尤其是当使用微服务方案后,面临在大量的项目构建和部署工作,借助于jenkins的持续集成,可以快速把应用打包成docker ...

  5. 基于 Docker 安装 Nginx 搭建静态服务器

    最近一直在准备家里的服务器部署一个自己用的网站玩玩,一来是用来学习部署的基础知识,二来,后面有空学点前端,可以部署到自己网站玩玩. 参考链接:https://juejin.cn/post/705740 ...

  6. centos7 yum搭建lnmp环境及配置wordpress超详细教程

    yum安装lnmp环境是最方便,最快捷的一种方法.源码编译安装需要花费大量的人类时间,当然源码编译可以个性化配置一些其它功能.目前来说,yum安装基本满足我们搭建web服务器的需求. 本文是我根据近期 ...

  7. 基于docker+reveal.js搭建一个属于自己的在线ppt网站

    前言 最近热衷于Docker,由于这段时间使用Docker来折腾自己的服务器,越来越感觉这是一种及其被应该推广的技术,因此想在公司内部也做一次技术分享.当然,如果只是做的PPT,我就不写这文章了.既然 ...

  8. 基于Docker和Golang搭建Web服务器

    1 场景描述 基于centos7的docker镜像搭建golang开发环境 在docker容器内,使用golang实现一个Web服务器 启动docker容器,并在容器内启动Web服务器 我购买了一个最 ...

  9. 金瓯无缺江河一统|Win10系统基于Docker和Python3搭建并维护统一认证系统OpenLdap

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_180 OpenLdap(Lightweight Directory Access Protocol)是什么?它其实是一个开源的.具 ...

  10. 基于docker环境,搭建 jetty环境, 部署java项目

    前提: 1.Ubuntu 系统. 2.docker环境已经安装好. 实现步骤: 1.上docker hub 下载jetty docker 镜像. 执行命令:$ sudo docker pull jet ...

随机推荐

  1. 开源的分布式事务解决方案-Seata

    Seata 是什么? (1)Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务. (2)在 Seata 开源之前,Seata 对应的内部版本在阿里经济 ...

  2. 接口(interface):实例化时要覆盖所有抽象方法,否则仍为抽象类

    概述 /* * 接口的使用 * 1.接口使用interface来定义 * 2.Java中,接口和类是并列的两个结构 * 3.如何定义接口:定义接口中的成员 * * 3.1 JDK7及以前:只能定义全局 ...

  3. css漂亮的弧形

    我们有时会遇到要用实现一个弧形,而这样的弧形要怎么实现呢? 用图片?好像不大现实,因为这样就要无故多加载一张图片了 ,这里我们来说说怎么用css的after伪类来实现弧形. 如果想要调整弧度的话,可以 ...

  4. 天翼云云电脑:IAAS基础设施带来的计算革新

    本文分享自天翼云开发者社区<天翼云云电脑:IAAS基础设施带来的计算革新>,作者:不知不觉 在当今这个数字化快速发展的时代,云计算作为一种新兴的信息技术,已经逐渐成为企业和个人日常运营的重 ...

  5. Apache Camel系列(2)----Hello World

    下面创建一个Apache Camel的Hello World程序,该程序使用Maven,Intellij 15,运行环境是JDK 8.   1,创建一个maven工程,在pom.xml文件中添加apa ...

  6. 掌握Python的hasattr()函数

    掌握Python的hasattr()函数 在Python编程中,hasattr()函数是一个非常实用的内置函数,它允许我们动态地检查一个对象是否拥有某个属性.这个功能在编写灵活.可扩展的代码时尤为重要 ...

  7. IDEA 打开多个文件显示在多行Tab上

    1.左上角选择Preferences 2.搜索Editor Tabs,右侧取消勾选Show tabs in one row

  8. C# TorchSharp 图像分类实战:VGG大规模图像识别的超深度卷积网络

    目录 图像分类 | VGG大规模图像识别的超深度卷积网络 数据集 直接下载 opendatalab 数据集社区 自定义数据集 模型训练 教程名称:使用 C# 入门深度学习 作者:痴者工良 教程地址: ...

  9. 探秘Transformer之(8)--- 位置编码

    探秘Transformer之(8)--- 位置编码 0x00 概述 位置编码(Positional Embedding)是一种用于处理序列数据的技术,被用来表示输入序列中的单词位置.在Transfor ...

  10. 读论文-序列感知推荐系统(Sequence-Aware Recommender Systems)

    前言 今天读的论文为一篇于2018年发表在(ACM computing surveys (CSUR))的论文,这篇文章主要讲述了序列感知推荐系统(Sequence-Aware Recommender ...