环境:
物理机:win11 家庭版
虚拟机:win10
虚拟机管理软件:VMware Workstation 17
物理机配置:
1,win11 家庭版需先安装Hyper-V,由于win11专业版都是自带Hyper-V的,需要使用只需在启用或关闭Windows功能中选上Hyper-V就行了。
但是,这里不用选上Hyper-V,由于Hyper-V和VMware一样都是虚拟机管理软件,所以启动某些服务会产生冲突,影响VMware虚拟机的正常开启。这里安装Hyper-V主要是,VMware在使用开启虚拟机嵌套时会去调用Hyper-V的某些服务,你只要保证电脑上有Hyper-V就行。
2,保证物理机上关于wsl的Windows功能是关闭的,这也在启用或关闭Windows功能中设置,主要是 Windows虚拟机监控程序平台, 适用于Linux的Windows子系统,虚拟机平台 三个选项的关闭。(有些选项默认是不开启的,我是搞错了,装wsl时搞到了物理机上,才需要去关闭)
3,完成了上述设置后,就可以去VMware开启虚拟机嵌套了。
将需要开启虚拟机嵌套的虚拟机关机,进入该虚拟机的设置,选择处理器,在右侧的虚拟化引擎框框中,勾选虚拟化Intel VT-x/EPT 或 AMD-V/RVI(V),确定保存,启动虚拟机,如果没有任何报错提示,就说明已成功开启虚拟机嵌套。(这里需要你的硬件支持,不太老的cpu基本都可以)
虚拟机配置:
1,win10虚拟机装docker,需要先装wsl2。参考的是旧版 WSL 的手动安装步骤 | Microsoft Learn。针对新一点的windows版本,还有wsl --install这种安装方式,安装过程参考安装 WSL | Microsoft Learn。我的环境上尝试了wsl --install是不行的,所以我没用这个方法,想使用这个方法的可以自行尝试。
我的发行版下载的是Ubuntu 20.04,我没下在c:,我下在e:,直接双击运行是可以成功安装的。
ps,我当时根据文档设置了wsl --set-default-version 2设置wsl版本为wsl2,但是不知道为什么,后面运行docker的时候发现,wsl的版本还是不对,然后用了wsl --update更新就可以了。
2,安装docker desktop,现在docker的网站是无法直接访问的,需要使用代理。如果虚拟机上不好设置的话,可以在物理机上把.exe文件下好然后拷贝到虚拟机上。使用.exe文件安装docker,使用前记得改磁盘映像位置,虚拟机的c盘没多大,如果占满了,后面会很麻烦。我写这个实验,硬是给c盘扩了两次10g,需要c盘扩容的可以自行搜索解决,基本就是为虚拟机分配更多磁盘空间,虚拟机中就会多出一块空闲磁盘空间,但由于这块磁盘空间不与c盘相邻,所以无法直接分配给c盘,需要通过专业软件的帮助(我使用的是disk genius)。
后来我想到,使用docker还是需要代理,所以建议虚拟机也配置代理(缺点,为c盘带来更多负担),或者用其他方式使虚拟机使用物理机的代理(较麻烦,ip会有变动)。