windows下docker环境安装
开启硬件虚拟化技术
win10中开启 Hyper-V
Win10 下是否开启硬件虚拟化技术,在控制面板,启用 window 功能,找到 Hyper-V 选项,点勾选确认。如图:
Windows 11 家庭中文版新增 Hyper-V选项
注意以下的解决方案来自win10,我的win11家庭中文版只走了第一步,有可能是后续有更新。
Windows 11 家庭中文版没有 Hyper-V这个选项。需要伪装成专业版系统,通过 Docker 的系统检测。
1.新建Hyper-V.cmd文件,并以管理员身份运行
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.新建containers.bat文件,并以管理员身份运行
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*containers*.mum >containers.txt
for /f %%i in ('findstr /i . containers.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del containers.txt
Dism /online /enable-feature /featurename:Containers -All /LimitAccess /ALL
pause
3.修改注册表
注意中间会重启两次。
REG ADD "HKEY_LOCAL_MACHINE\software\Microsoft\Windows NT\CurrentVersion" /v EditionId /T REG_EXPAND_SZ /d Professional /F
Hyper-V出现
来源:
Docker Windows桌面版安装 Windows家庭版伪装成专业版系统_windows containers are not supported by your windo-CSDN博客
官网下载安装
https://www.docker.com/products/docker#/windows
报错解决
1.error during connect.....
在PowerShell中输入: docker images报错
error during connect: In the default daemon configuration on Windows, the docker client must be run with elevated privileges to connect.: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/images/json: open //./pipe/docker_engine: The system cannot find the file specified.
输入: cd "C:\Program Files\Docker\Docker" ,进入安装路径 (注意双引号不能省略)
DockerCli.exe -SwitchDaemon
执行完 ./DockerCli.exe -SwitchDaemon 之后,会弹出
不用管,关掉,docker desktop也会同时关掉。
重新打开docker desktop,右键setting,还是转圈圈,需要等几分钟之后(不知道是不是我电脑的问题),会弹出设置存储库界面: First, clone a repository, 我都是next ,下一步下一步。完了之后setting界面就不转圈圈了:
来源:
https://www.cnblogs.com/ianlab/p/17130272.html
2.Unexpected WSL error...
首先确保程序设置里,勾选了“Windows虚拟机监控程序平台”,以及“适用于Linux 的windows子系统“
打开管理员CMD,或者Windows Powershell,输入:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
重启WSL
netsh winsock reset
重启电脑
3、就可以成功启动docker了。(不用重装docker)
来源:Docker无法启动,报错:Docker Desktop - Unexpected WSL error-CSDN博客
3.Update the WSL kernel by running “wsl --update” ....
报错一 Update the WSL kernel by running “wsl --update” or follow instructions at https://docs.microsoft.com/windows/wsl/wsl2-kernel.
解决:管理员运行CMD,执行
wsl --update
来源:Windows安装 Docker Desktop报错解决大全-CSDN博客
4.家庭版则会造成系统版本冲突
报错提示1:
Docker | installation failed: one prerequisite is not fullfilled报错提示2:
Windows containers are not supported by your windows version check documentaDocker 支持 WIN10 的专业版,如果使用家庭版则会造成系统版本冲突了!
解决:安装上面Windows 11 家庭中文版新增 Hyper-V的执行步骤操作
5.Docker Desktop一直显示"starting the Docker Engine"
1.确定启动虚拟化
2.切换docker版本,有时候最新版本不一定适用当前电脑环境,需要不断尝试
我是在:https://docs.docker.com/desktop/release-notes/
选择了v24.0.6这个版本才没有报错,可以正常使用了。中间不断尝试,需要卸载dockerDesktop,建议使用geek,geek会清理注册表,卸载更加干净。
来源:
解决在Windows11上新安装的Docker Desktop一直显示"starting the Docker Engine"登录不上去的问题 - 知乎
更改docker desktop中镜像存储路径
c盘资源不够,需要更换存储路径到d盘。
1.退出当前运行的dock desktop
右击运行中的docker软件图标 选择[Quit Docker Desktop] 退出软件
cmd中运行
wsl --list -v
version版本为2是因为步骤5设置了版本号为2
查看状态,状态为Stopped这代表已经停止
立即终止所有正在运行的发行版和 WSL 2 轻量级实用工具虚拟机
wsl --shutdown
Docker Desktop 通过WSL2启动,会自动创建2个子系统,分别对应2个 vhdx 硬盘映像文件[docker-desktop-data与docker-desktop]
分别导出这俩个文件
**需要提前创建好目录 (例:E:\Docker\wsl\distro和E:\Docker\wsl\data) **
mkdir d:\Docker\wsl\distro\
mkdir d:\Docker\wsl\data\
wsl --export docker-desktop d:\Docker\wsl\distro\docker-desktop.tar
wsl --export docker-desktop-data d:\Docker\wsl\data\docker-desktop-data.tar
销毁原来的docker镜像会删除源路径下的文件
wsl --unregister docker-desktop-data
wsl --unregister docker-desktop
5.从tar 文件,将导出的 Docker 镜像再导入回wsl,并设置挂载目录–v 为设置版本号 不设置默认为1
导入docker-desktop
wsl --import docker-desktop-data d:\Docker\wsl\data\ d:\Docker\wsl\data\docker-desktop-data.tar --version 2
wsl --import docker-desktop d:\Docker\wsl\distro\ d:\Docker\wsl\distro\docker-desktop.tar --version 2
重启Docker Desktop即可。
导入完成确认镜像没问题后导出的.tar文件可以删除
测试
如果docker pull redis,D:\Docker这个文件扩大,说明移动成功。
但是测试发现,这个目录在,执行docker rmi以后,硬盘没有回收,待验证解决。
来源:
windows10,更改docker desktop中镜像存储路径_windows docker镜像位置-CSDN博客
wsl硬盘释放
#退出Docker Desktop
wsl>fstrim -a
# 彻底关闭 WSL2 虚拟机
wsl --shutdown
#使用Diskpart工具中的compact功能压缩磁盘镜像文件
diskpart
# 指定 WSL2 虚拟机磁盘镜像文件位置
# 引号内为ext4.vhdx虚拟磁盘位置
select vdisk file="D:\Docker\wsl\data\ext4.vhdx"
# 只读 附加磁盘镜像文件
attach vdisk readonly
# 压缩 vhdx 磁盘镜像文件
compact vdisk
# 分离 vhdx 磁盘镜像文件
detach vdisk
# 退出
exit
来源:解决WSL2中删除文件存储空间不释放的问题 - 知乎
常见组件安装
注意:以下都是测试,没有进行目录挂载。
mysql安装
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
如果要进行目录映射
docker run -p 3306:3306 --name mysql -v D:\WorkSpace\Workspace_docker\mysql57\conf:/etc/mysql -v D:\WorkSpace\Workspace_docker\mysql57\logs:/var/log/mysql -v D:\WorkSpace\Workspace_docker\mysql57\data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
来源:windows系统使用Docker搭建MySQL服务_windows docker mysql-CSDN博客
redis安装
docker run --name my-redis -d -p 6379:6379 redis
客户端
docker exec -it my-redis redis-cli
来源:windows 安装docker redis_mob649e8168f1bb的技术博客_51CTO博客
tomcat安装
docker run -d -p 8080:8080 --name t1 tomcat:latest
tomcat8
docker run -d -p 8080:8080 --name t8 billygoo/tomcat8-jdk8:latest
来源:【Docker】如何用Docker安装Tomcat_docker 安装tomcat-CSDN博客
验证同一主机不通容器之间的的通信
docker network create mynetwork
docker run -d -p 8080:8080 --network=mynetwork --name t8 billygoo/tomcat8-jdk8:latest
docker run -d -p 8081:8080 --network=mynetwork --name t8_2 billygoo/tomcat8-jdk8:latest
docker exec -it t8 /bin/bash,进入t8容器内 ping t8_2,能够ping通,说明容器间可以通信
要创建一个Docker网络,你可以使用`docker network create`命令。下面是一些常见的用法:
1. 创建一个桥接网络:
```
docker network create mynetwork
```
2. 创建一个“host”网络,使容器与主机共享网络栈:
```
docker network create --driver=host mynetwork
```
3. 创建一个“overlay”网络,用于多主机间的容器通信:
```
docker network create --driver=overlay mynetwork
```
4. 创建一个“macvlan”网络,允许容器拥有自己的MAC地址:
```
docker network create --driver=macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 mynetwork
```
这里的`mynetwork`是网络的名称,你可以根据需要自定义。`--driver`参数用于指定网络驱动类型,常见的驱动类型有bridge、host、overlay和macvlan。其他参数根据驱动类型的不同而有所不同。
创建网络后,你可以在运行容器时使用`--network`参数将容器加入到该网络中。例如:
```
docker run --network=mynetwork myimage
```
注意,网络名称在容器之间必须是唯一的,因此请确保你为每个网络选择一个唯一的名称。
相关文章:

windows下docker环境安装
开启硬件虚拟化技术 win10中开启 Hyper-V Win10 下是否开启硬件虚拟化技术,在控制面板,启用 window 功能,找到 Hyper-V 选项,点勾选确认。如图: Windows 11 家庭中文版新增 Hyper-V选项 注意以下的解决方案来自win1…...

Python小程序 - 表格数值统计
题设:Excel表格中,计算如下图所示不同颜色(蓝、黄、桔)单元格值:各颜色填涂的单元格值的总和条件: - Excle表格中 - 分色标记,单元格有值 - 开始列(当前为D),…...

Unity | Shader基础知识(第一集:unity中最简单的shader)
目录 一、unity的shader 二、创建一个shader(在创建时,选前三种都可以) 三、内容解读 1.shader一直都在 2.我们写shader在写什么 四、没有被干预的shader(最简单的shader) 相关阅读 编写着色器概述 - Unity 手册…...

橘子学K8S01之容器中所谓的隔离
我们一直都在说容器就是一个沙盒,沙盒技术顾名思义就是像一个集装箱一样,把应用(服务,进程之类的)装起来的技术,这样每个进程在自己的沙盒中和其他的沙盒隔离开来,每个沙盒之间存在一个边界使得他们互不干扰࿰…...

利用svm进行模型训练
一、步骤 1、将文本数据转换为特征向量 : tf-idf 2、使用这些特征向量训练SVM模型 二、代码 from sklearn.model_selection import train_test_split from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.svm import SVC from sklearn.m…...

【Docker】WSL 2 上的 Docker 搭建和入门
▒ 目录 ▒ 🛫 导读开发环境 1️⃣ 安装安装Docker Desktop for Windows 2️⃣ 环境配置3️⃣ hello world第一次运行再次运行分析总结 📖 参考资料 🛫 导读 开发环境 版本号描述文章日期2023-12-14操作系统Win11 - 22H222621.2715WSL2 C:…...
pytorch环境配置
1.创建环境 conda create --name pytorch python3.11.5 2.激活环境 source activate pytorch 3.添加国内镜像源: conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsin…...

电子眼+无人机构建平安城市视频防控监控方案
电子眼(也称为监控摄像机)可以通过安装在城市的不同角落,实时监控城市的各个地方。它们可以用于监测交通违法行为、监控公共场所的安全以及实时监测特定区域的活动情况。通过电子眼的应用,可以帮助警方及时发现并响应各类安全事件…...
mysql binlog_ignore_db参数的效果详解
我们知道 binlog 会记录数据库所有执行的 DDL 和 DML 语句(除了数据查询语句select、show等)。 我们可以在mysql配置文件中关闭binlog [mysqld] skip-log-bin注意默认情况下会记录所有库的操作,那么如果我们有另类需求,比如说只让某个库记录 binglog 或排除某个库记录…...

HI3559AV100和FPGA 7K690T的PCIE接口调试记录-续
上文https://blog.csdn.net/fzktongyong/article/details/134963814?spm1001.2014.3001.5501 上一篇文中PCIE实测速度和理论计算有较大偏差,经过尝试后有所提升。 1、提升效果 1)、RC写操作,实测速度817MB/s(410407&…...
vivado约束方法4
时序约束向导 定时约束向导确定合成或上缺少的定时约束实现的设计。它分析了网表、时钟网络连接和现有的定时限制,以便根据《超快设计方法指南》提供建议用于FPGA和SoC(UG949)。以下11涵盖了三类约束页面,然后是摘要。包括以下步…...
LeetBook学习-C语言-数组
1.数组的操作 1.1 读取元素 知道内存地址可以快速访问,时间复杂度为O(1) 1.2 查找元素 从首地址开始,逐个查找,最坏时间复杂度为O(N) 1.3 插入元素 插入元素,首先位置要腾空,而后执行插入操作。 1.4 删除元素 删除掉某…...

23种策略模式之策略模式
23种策略模式之策略模式 文章目录 23种策略模式之策略模式前言优缺点使用场景角色定义UML模拟示例小结 前言 在软件开发中,设计模式是为了解决常见问题而提供的一套可重用的解决方案。策略模式(Strategy Pattern)是其中一种常见的设计模式&a…...

【笔试强化】Day 2
文章目录 一、选择1.2.(写错)3.4.5.6.(不会)7.(不清晰)8. (不会)9.10.(写错) 二、编程1. 排序子序列解法:代码: 2. 倒置字符串解法&am…...

windows禁用系统更新
1.在winr运行框中输入services.msc,打开windows服务窗口。 services.msc 2.在服务窗口中,我们找到Windows update选项,如下图所示: 3.双击windows update服务,我们把启动类型改为禁用,如下图所示ÿ…...

ES6原生音乐播放器(有接口)
视频展示 ES6音乐播放器 项目介绍 GutHub地址:GitHub - baozixiangqianchong/ES6_MusicPlayer: 音乐播放器 ES6_MusicPlayer 是基于JavaScriptES6Ajax等通过原生构建的项目。能够充分锻炼JS能力。 本项目有主页、详情页、歌单页面三部分组成 ├── assets&…...

Django和ECharts异步请求示例
前提条件 创建django项目,安装配置过程这里就不讲述了。 后端url http://127.0.0.1:8000/echarts/demo/ view视图函数 from django.http import HttpResponse import jsondef EchartsDemo(request):data {}categories ["衬衫","羊毛衫",&…...

Java序列化、反序列化-为什么要使用序列化?Serializable接口的作用?
什么是序列化和反序列化? 把对象转换成字节序列把字节序列恢复成对象 结合OSI七层协议模型,序列化和反序列化是在那一层做的? 在OSI七层模型中,序列化工作的层级是表示层。这一层的主要功能包括把应用层的对象转换成一段连续的二进…...
连锁零售企业如何优化网络性能?
在传统的WAN网络中,分支机构通常通过专线或者MPLS连接到总部或数据中心,但这种连接受制于地理位置。而SD-WAN(Software-Defined Wide Area Network)这种创新的网络架构,它通过软件定义和虚拟化技术,将分支机…...

[已解决]HttpMessageNotReadableException: JSON parse error: Unexpected character:解析JSON时出现异常的问题分析与解决方案
🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~ἳ…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...

DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...

dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
学习一下用鸿蒙DevEco Studio HarmonyOS5实现百度地图
在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 1. 鸿蒙环境准备 开发工具:下载安装 De…...

DBLP数据库是什么?
DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...