当前位置: 首页 > news >正文

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 documenta

Docker 支持 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这代表已经停止

2.停止虚拟机

立即终止所有正在运行的发行版和 WSL 2 轻量级实用工具虚拟机

wsl --shutdown

3.导出映像文件

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

4.注销原来的 Docker 镜像

销毁原来的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
 

6 重启docker完成

重启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之容器中所谓的隔离

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

利用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服务,我们把启动类型改为禁用,如下图所示&#xff…...

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的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…...

XML Group端口详解

在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

接口测试中缓存处理策略

在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

OpenLayers 可视化之热力图

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

synchronized 学习

学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...