demo_win10配置WSL、DockerDesktop环境,本地部署Dify,ngrok公网测试
win10配置WSL、DockerDesktop环境,本地部署Dify,ngrok分享测试
一、配置WSL
1.1 开启Hyper-V
安装WSL2首先要保证操作系统可以开启hyper-v功能,默认支持开启hyper-v的版本为:Windows11企业版、专业版或教育版,而家庭版是不支持开启的,但是我们如果是家庭版,可以自行安装相关组件来开启hyper-v功能。
w11家庭中文版开启hyper-v步骤:
1.创建hyper-v.bat文件,将以下代码复制并保存;
pushd "%\~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
2.已管理员身份运行hyper-v.bat文件,等待执行,提示输入【y】后重启计算机;
3.重启后,可以在【控制面板-程序功能-启用或关闭Windows功能】列表勾选Hyper-V;
非家庭版可直接在【控制面板-程序功能-启用或关闭Windows功能】开启Hyper-V;
1.2 启用window子系统及虚拟化
管理员身份运行 powershell,执行如下命令启用文win子系统及虚拟化:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
1.3 安装WSL2
基于WSL2技术来使用Docker Desktop,先安装WSL2
直接省事选择,在线安装
wsl -l -o # wsl --list --online
wsl --install -d Ubuntu-20.04
wsl -l -v
安装过程也会有要求输入用户名和密码;
安装成功,wsl -l -v 显示, ubuntu应该已经挂载到wsl:
另外也可手动安装并安装到其他盘,可参考文档:
https://blog.csdn.net/daodaipsrensheng/article/details/143154066
1.4 文件传输:
wsl访问win,/mnt下有C, D盘;
win访问wsl,可以用【电脑-Linux】可以直接打开wsl文件
1.5 为Ubuntu安装docker
为刚刚安装的ubuntu安装依赖:
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common-- 信任 Docker 的 GPG 公钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add --- 对于 amd64 架构的计算机,添加软件仓库:
sudo add-apt-repository \"deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \$(lsb_release -cs) \stable"-- 安装docker
sudo apt-get update
sudo apt-get install docker-ce
启动docker:
sudo service docker start
docker images
docker search nginx
测试docker:
docker run hello-world
docker pull nginx
docker run --name nginx -p 8080:80 -d nginx
其他:
wsl官方文档,常用命令等
https://learn.microsoft.com/zh-cn/windows/wsl/basic-commands
报错记录:
wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。
二、安装、配置DockerDesktop
2.1 安装DockerDesktop
Docker默认安装路径为C盘:
C:\你的用户名\AppData\Local\Docker\wsl
但是docker后续镜像占用磁盘较多,这里把Docker安装到其他盘;
步骤如下:
-
官网下载Docker Desktop Installer.exe
-
管理员身份运行cmd,进入到Docker Desktop Installer.exe目录
-
在命令行提示符运行如下代码,具体安装路径自行修改;
start /w "" "Docker Desktop Installer.exe" install -accept-license --installation-dir="D:\Docker" --wsl-default-data-root="D:\Docker\data" --windows-containers-default-data-root="D:\\Docker"
note:
D:\Docker 是Docker Desktop 安装程序的安装目录;
D:\Docker\data是Docker存放是Docker 用于存储镜像、容器、卷等数据的目录;
D:\Docker,表示在 Windows 操作系统中,Docker 程序将被安装在 D 盘一个名为 Docker 的文件夹中,记得双斜杠。
在运行代码前,一定要提前手动创建好对应文件夹,不然会报错。检查实际路径:
2.1 配置DockerDesktop
配置国内镜像源
在如下位置配置国内镜像源,
镜像源参考使用:
"registry-mirrors": ["https://docker.1ms.run","https://docker.xuanyuan.me","https://dislabaiot.xyz","https://hub.rat.dev","https://doublezonline.cloud","https://xdark.top","https://dev.xuanyuan.dev","https://docker.anyhub.us.kg","https://dockerhub.jobcher.com","https://dockerhub.icu","https://hub-mirror.c.163.com","https://mirror.ccs.tencentyun.com","https://mirrors.aliyun.com"]
报错记录:
实测wsl2.5.1、2.5.7版本与DockerDesktop4.41.2版本无法兼容使用,报错:Unknown key ‘automount.crossDistro’ in /etc/wsl.conf:3
/etc/wsl.conf内容如下:
[automount]
root = /mnt/host
crossDistro = true
options = "metadata"
[interop]
enabled = true
解决方案:
参考:
https://github.com/microsoft/WSL/issues/12711#issuecomment-2752958025
https://github.com/docker/for-win/issues/14704
通过wsl降版本2.4.x解决
下载地址:WSL-Releases
DockerDesktop无法启动,多次重复安装依旧;
解决方案:
首先确定wsl能正常启动;
删除未卸载干净文件,否则换路径安装;
三、本地部署dify应用尝鲜
前面第一步和第二步配置好WSL2和docker后,现在 基于dify部署一个简单的文档解析应用;
部署dify系统要求:
- CPU >= 2 Core
- RAM >= 4 GiB
3.1 克隆dify仓库:
git clone https://github.com/langgenius/dify.git
3.2 快速启动部署:
docker-compose.yml 文件为官方给定yaml配置文件,启动docker后执行如下命令:
cd docker
cp .env.example .env
docker compose up -d
docker compose up -d 命令执行完,会pull相关镜像并启动容器,启动成功截图如下:
启动成功后,在浏览器上访问 http://localhost/install 进入 Dify 控制台即可操作
创建知识库与创建应用基于UI操作,可自查文档
简单搭建的基于知识库的文档解析助手如下:
参照README: https://github.com/langgenius/dify/blob/main/README_CN.md
四、ngrok分享
dify基于cloud搭建应用文档解析很慢,在本地部署可以快速构建知识库,本地部署后可以通过ngrok将本地部署服务发布公网使用;
如下图,三步骤生成临时公网ip:
第2步是需要命令提示符cd到ngrok下载目录执行,且默认dify端口为80,配置文件为.env.example
公网ip生成成功页面如下:
标红即为临时公网地址
分享给别人用,需要邮箱+密码登录
ref: Setup - ngrok
Ngrok 内网穿透教程(Windows 系统
相关文章:

demo_win10配置WSL、DockerDesktop环境,本地部署Dify,ngrok公网测试
win10配置WSL、DockerDesktop环境,本地部署Dify,ngrok分享测试 一、配置WSL 1.1 开启Hyper-V 安装WSL2首先要保证操作系统可以开启hyper-v功能,默认支持开启hyper-v的版本为:Windows11企业版、专业版或教育版,而家庭版是不支持…...

TablePlus:一个跨平台的数据库管理工具
TablePlus 是一款现代化的跨平台(Window、Linux、macOS、iOS)数据库管理工具,提供直观的界面和强大的功能,可以帮助用户轻松管理和操作数据库。 TablePlus 免费版可以永久使用,但是只能同时打开 2 个连接窗口ÿ…...

SQL Indexes(索引)
目录 Indexes Using Clustered Indexes Using Nonclustered Indexes Declaring Indexes Using Indexes Finding Rows Without Indexes Finding Rows in a Heap with a Nonclustered Index Finding Rows in a Clustered Index Finding Rows in a Clustered Index with …...

Axure 基础入门
目录 认识产品经理 项目团队* 基本概述 认识产品经理 A公司产品经理 B公司产品经理 C公司产品经理 D公司产品经理 产品经理工作范围 产品经理工作流程* 产品经理的职责 产品经理的分类 产品经理能力要求 产品工具 产品体验报告 原型设计介绍 原型设计概述 为…...

结构型设计模式之Decorator(装饰器)
结构型设计模式之Decorator(装饰器) 前言: 本案例通过李四举例,不改变源代码的情况下 对“才艺”进行增强。 摘要: 摘要: 装饰器模式是一种结构型设计模式,允许动态地为对象添加功能而不改变其…...

HCIP-Datacom Core Technology V1.0_3 OSPF基础
动态路由协议简介 静态路由相比较动态路由有什么优点呢。 静态路由协议,当网络发生故障或者网络拓扑发生变更,它需要管理员手工配置去干预静态路由配置,但是动态路由协议,它能够及时自己感应网络拓扑变化,不路由选择…...

工作自动化——工作自动提炼--智能编程——仙盟创梦IDE
工作自动化中的自动提炼、自动比对代码生成日志,为软件开发与项目管理带来诸多好处。 自动提炼能从复杂代码中精准提取关键信息,节省人工梳理时间,开发人员可快速把握核心逻辑,加速项目熟悉进程。自动比对代码则及时发现版本间差异…...
go语言学习 第 2 章:变量与数据类型
第 2 章:变量与数据类型 在 Go 语言中,变量和数据类型是构建程序的基础。理解它们的使用方式和特性,对于编写高效、可维护的代码至关重要。本章将详细介绍变量的声明、初始化、使用以及 Go 语言中的各种数据类型。 一、变量的声明与初始化 …...

大语言模型评测体系全解析(上篇):基础框架与综合评测平台
文章目录 一、评测体系的历史演进与技术底座(一)发展历程:从单任务到全维度评测1. 2018年前:单数据集时代的萌芽2. 2019-2023年:多任务基准的爆发式增长3. 2024年至今:动态化、场景化、多模态体系成型关键节…...
Spring Event(事件驱动机制)
一、Spring Event 应用场景 1. 业务解耦 当一个业务操作触发多个后续动作时,用事件解耦各个动作,避免代码耦合。 比如:用户注册后同时发送欢迎邮件、积分赠送、日志记录等,这些逻辑可以通过事件发布多个监听器异步处理。 2. 跨模…...
Fisher准则例题——给定类内散度矩阵和类样本均值
设有两类样本,两类样本的类内散度矩阵分别为 S 1 ( 1 1 / 2 1 / 2 1 ) , S 2 ( 1 − 1 / 2 − 1 / 2 1 ) S_1 \begin{pmatrix} 1 & 1/2 \\ 1/2 & 1 \end{pmatrix}, \quad S_2 \begin{pmatrix} 1 & -1/2 \\ -1/2 & 1 \end{pmatrix} S1(11/21…...
MySQL数据库中INNODB表数据的备份与恢复
使用数据库时,其中非常重要的一块内容就是数据的安全,而保障数据安全的重要手段是数据备份与还原恢复。目前,我们主要的备份手段有逻辑备份、物理备份,逻辑备份一般适用范围很广,可以适用于解决不同版本间的备份与恢复,但一般执行时间长,而且备份占用空间大。这里介绍一…...
振动分析师(ISO18436-2)四级能力矩阵 - 简介
本文的内容绝大多数来自:VCAT-II Vibration Analyst - Mobius Institute相关振动分析员培训招生彩页,特此致谢!内容整理参见:振动分析师四级能力矩阵 - 知乎。 CAT I 振动分析技术员 1.1角色画像 Collect vibration dataValida…...

生产环境MYSQL常见锁表场景
前言 锁表是我们在生产环境十分常见的问题之一,解决问题前需要先了解锁表产生的原因以找到解决方案,并制定方案以预防锁表,本文接下来会分别模拟元数据锁表(MDL锁)、行锁升级为表锁、死锁、**显示锁表 **四种锁表情形…...

结构性设计模式之Composite(组合)
结构性设计模式之Composite(组合) 摘要: Composite(组合)模式通过树形结构表示"部分-整体"层次关系,使得用户能够统一处理单个对象和组合对象。该模式包含Component(组件接口&#x…...

Java面试八股--04-MySQL
致谢:感谢整理!2025年 Java 面试八股文(20w字)_java面试八股文-CSDN博客 目录 1、Select语句完整的执行顺序 2、MySQL事务 3、MyISAM和InnoDB的区别 4、悲观锁和乐观锁怎么实现 5、聚簇索引与非聚簇索引区别 6、什么情况下my…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(31):そう
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(31):そう 1、前言(1)情况说明(2)工程师的信仰2、知识点(1)复习(2) そう1,いAくな+さそうでう。2,なAな + そうです。3,いいです ー>よさそうです。4、x Xの状況(じょうきょう)5、みたい & ら…...

设计模式——访问者设计模式(行为型)
摘要 访问者设计模式是一种行为型设计模式,它将数据结构与作用于结构上的操作解耦,允许在不修改数据结构的前提下增加新的操作行为。该模式包含关键角色如元素接口、具体元素类、访问者接口和具体访问者类。通过访问者模式,可以在不改变对象…...

实验设计与分析(第6版,Montgomery著,傅珏生译) 第10章拟合回归模型10.9节思考题10.1 R语言解题
本文是实验设计与分析(第6版,Montgomery著,傅珏生译) 第10章拟合回归模型10.9节思考题10.1 R语言解题。主要涉及线性回归、回归的显著性、回归系数的置信区间。 vial <- seq(1, 10, 1) Viscosity <- c(160,171,175,182,184,181,188,19…...
《对象创建的秘密:Java 内存布局、逃逸分析与 TLAB 优化详解》
大家好呀!今天我们来聊聊Java世界里那些"看不见摸不着"但又超级重要的东西——对象在内存里是怎么"住"的,以及JVM这个"超级管家"是怎么帮我们优化管理的。放心,我会用最接地气的方式讲解,保证连小学…...

LeetCode 高频 SQL 50 题(基础版) 之 【高级查询和连接】· 下
上部分链接:LeetCode 高频 SQL 50 题(基础版) 之 【高级查询和连接】 上 题目:1164. 指定日期的产品价格 题解: select product_id,10 price from Products group by product_id having min(change_date) > 201…...
Java并发编程:读写锁与普通互斥锁的深度对比
在Java并发编程中,锁是实现线程安全的重要工具。其中,普通互斥锁(如synchronized和ReentrantLock)和读写锁(ReentrantReadWriteLock)是两种常用的同步机制。本文将从多个维度深入分析它们的区别、适用场景及…...
Spring Boot Actuator未授权访问漏洞修复
方案1:在网关的配置文件里增加以下配置 management:endpoints:web:exposure:include: []enabled-by-default: falseendpoint:health:show-details: ALWAYS 方案二:直接在nginx配置拦截actuator相关接口 location /actuator { return 403; …...

机器学习——SVM
1.什么是SVM 支持向量机(support vector machines,SVM)是一种二分类模型,它将实例的特征向量映射为空间中的一些点,SVM 的目的就是想要画出一条线,以 “最好地” 区分这两类点,以至如果以后有了…...

【音视频】FFmpeg 硬件(NVDIA)编码H264
FFmpeg 与x264的关系 ffmpeg软编码是使⽤x264开源项⽬,也就是说ffmpeg软编码H264最终是调⽤了x264开源项⽬,所以我们要先理解ffmpeg和x264的调⽤关系,这⾥我们主要关注x264_init。对于x264的参数都在 ffmpeg\libavcodec \libx264.c x264\co…...

贪心算法应用:超图匹配问题详解
贪心算法应用:超图匹配问题详解 贪心算法在超图匹配问题中有着广泛的应用。下面我将从基础概念到具体实现,全面详细地讲解超图匹配问题及其贪心算法解决方案。 一、超图匹配问题基础 1. 超图基本概念 **超图(Hypergraph)**是普…...
OpenCV CUDA模块结构分析与形状描述符------计算指定阶数的矩(Moments)所需的总数量函数:numMoments
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 该函数用于计算指定阶数的矩(Moments)所需的总数量。 在图像处理中,矩(moments)是一…...

【Web应用】若依框架:基础篇13 源码阅读-前端代码分析
文章目录 ⭐前言⭐一、课程讲解过程⭐二、自己动手实操⭐总结 标题详情作者JosieBook头衔CSDN博客专家资格、阿里云社区专家博主、软件设计工程师博客内容开源、框架、软件工程、全栈(,NET/Java/Python/C)、数据库、操作系统、大数据、人工智能、工控、网…...

[java八股文][JavaSpring面试篇]SpringCloud
了解SpringCloud吗,说一下他和SpringBoot的区别 Spring Boot是用于构建单个Spring应用的框架,而Spring Cloud则是用于构建分布式系统中的微服务架构的工具,Spring Cloud提供了服务注册与发现、负载均衡、断路器、网关等功能。 两者可以结合…...
深度学习篇---face-recognition的优劣点
face_recognition库是一个基于 Python 的开源人脸识别工具,封装了 dlib 库的深度学习模型,具有易用性高、集成度强的特点。以下从技术实现、应用场景等维度分析其优劣势: 一、核心优势 1. 极简 API 设计,开发效率极高 代码量少:几行代码即可实现人脸检测、特征提取和比对…...