VMWare与Hyper-V共存之虚拟机中Docker无法启动的错误解决方案

首先,Windows10 21H1版本下VMWare16与HyperV可以共存,并且都正常运行启动,至于如何共存,下面贴一段代码:

::%cd%代表的是执行文件的当前目录,强调bat是在哪里启动的     ->盘符展开后是可改变的
::%~dp0代表的是bat文件所在的文件目录,强调bat的文件位置     ->盘符展开后是不可改变的
pushd "%~dp0"
::通过通配符获取文件名到hypervisorplatform.txt
dir /b %SystemRoot%\servicing\Packages\*HypervisorPlatform*.mum >hypervisorplatform.txt
::循环+拼接安装命令
::/quiet表示静默安装,/norestart表示无需重启(这些参数可酌情使用)
for /f %%i in ('findstr /i . hypervisorplatform.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
::删除txt
del hypervisorplatform.txt
::启用
Dism /online /enable-feature /featurename:HypervisorPlatform /LimitAccess /ALL
pause 

拷贝以上代码,复制到一个txt文件,并将文件改名为:run.bat,右键,管理员运行…
此处要注意,需要win10最新版本,并且VMware16以上

宿主机已开启Hyper-V,至于怎么开启,则不详述;
宿主机可以正常运行Docker;
Vmware可以启动虚拟机。
但是,在虚拟机中安装Docker后,docker不能运行,提示Hyper-V部分服务未启动
至于宿主机可以运行Docker,为啥还要在虚拟机运行Docker,此处不详述。
后面就是要解决,要在虚拟机中运行Docker…
如果不需要运行Docker,后面就不要看了。。。

如果不开启Hyper-V,是可以通过处理器的VT-X的方式是vmware虚拟机运行Docker;
在这里插入图片描述
但是开启了Hyper-V后,vmware无法开启VT-X;
在这里插入图片描述
在这里插入图片描述
其实原因就是,不能嵌套虚拟化功能,要虚拟机中还要虚拟化,这就是嵌套虚拟

1、Hyper-V中安装虚拟机(详细操作请自行搜索);
在这里插入图片描述
2、启动PowerShell
在这里插入图片描述
3、Get-vm
在这里插入图片描述
4、 Get-VMProcessor -VMName Server2019 | fl
**注意:**server2019是你的Hyper-V中安装的虚拟机名称
在这里插入图片描述
如果没有开启过,就是false状态。
5、 Set-VMProcessor -ExposeVirtualizationExtensions $true -VMName Server2019
在这里插入图片描述
显示未True就是已经开启嵌套虚拟化了,但是这个功能只针对Hyper-V虚拟机,所以,为什么要装虚拟机到Hyper-V中,就是这个原因,至于vmware中的,不知到如何解决。
6、如果内存大,启动Docker就没问题了,如果宿主机内存下,可能还需要设置以下Docker设置,否则可能提示出错。
在这里插入图片描述
7、虚拟机中的Docker,按以下图片路径设置合适即可(例如将2048改未1024):
在这里插入图片描述
至此,虚拟机中的Docker正常启动运行。
虚拟机中虚拟化,更消耗内存,尽量在内存大的机器上运行吧,有条件,还要啥自行车,不是吗!!!
欢迎留言交流!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐