windows 三大虚拟环境(Hyper-v&vmware&docker)共存

0x00

说在前面
因为之前就听说过windows hyper-v能和vmware共存了 但是据说性能削减一直没弄,再加前段时间windows官网的更新软件有点问题,所以系统一直是1909的版本 没有升级到2004 所以内核也就没有升级

0x01

首先卸载掉你的vmware吧,待会会下回来

然后去docker官网下载了最新版本的docker desktop for windows安装包
docker官网

我第一次安装的时候(系统内核版本低)安装界面是提示hyper-v的支持,安装完之后只能用
windows container不能用linux container,一旦switch to linux container就报错如下,各种搜索引擎搜了一下午也没有解决,github上有很多一样的情况都没有解决,所以,如果你的系统版本不是win10 2004及以上,先别急着安装docker,必然出错

“ DockerDesktopVM ”无法实现。(虚拟机 ID E26B94CE-F70A-40DB-9F3E-8F658293A67C)

无法访问配置存储: 系统找不到指定的路径。 (0x80070003)。

   在 Docker.Core.Pipe.NamedPipeClient.<TrySendAsync>d__5.MoveNext()
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   在 Docker.Core.Pipe.NamedPipeClient.Send(String action, Object[] parameters)
   在 Docker.Actions.DoStart(SynchronizationContext syncCtx, Boolean showWelcomeWindow, Boolean executeAfterStartCleanup)
   在 Docker.Actions.<>c__DisplayClass24_0.<Start>b__0()
   在 Docker.ApiServices.TaskQueuing.TaskQueue.<>c__DisplayClass17_0.<.ctor>b__1()

0x02

阅读了vmware官方的一篇文章
虽然全英文但是还是比较好理解的,感兴趣可以看一下,简单总结的话就是共存需要 windows内核大于19041.264 以及 vmware版本高于15.5.5

在用windows官网的更新,系统更新恰好内核到 19041.264(就是支持hyper-v和vmware共存的内核版本)之后,尝试重新安装docker
windows 三大虚拟环境(Hyper-v&vmware&docker)共存_第1张图片
这时候点击docker安装程序,提示的是wsl2 mode。

0x03

安装会如下报错

The WSL 2 Linux kernel is now installed using a separate MSI update package. Please click the link and follow the instructions to install the kernel update: https://aka.ms/wsl2kernel

https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-kernel
在上面这个连接下载内核更新包安装后点击restart就可以重启 docker并使用 linux containers了

在 settings->Docker Engine里面设置镜像源

windows 三大虚拟环境(Hyper-v&vmware&docker)共存_第2张图片
Resourses->WSL Integration里面可以设置访问docker的wsl,但是必须是wsl2 这里我们就需要将wsl升级为wsl2,具体操作如下

PS C:\Users\MXQ> wsl -l -v
  NAME                   STATE           VERSION
* ubuntu                 Stopped         1
  docker-desktop-data    Running         2
  docker-desktop         Running         2
PS C:\Users\MXQ> wsl --set-version ubuntu 2
正在进行转换,这可能需要几分钟时间...
有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2
转换完成。
PS C:\Users\MXQ> wsl -l -v
  NAME                   STATE           VERSION
* ubuntu                 Stopped         2
  docker-desktop-data    Running         2
  docker-desktop         Running         2

windows 三大虚拟环境(Hyper-v&vmware&docker)共存_第3张图片
这样就可以在wsl下访问docker了

0x04

这种方式安装的docker的镜像地址在
C:\Users\MXQ\AppData\Local\Docker 下
当pull的镜像越来越多的时候往往会C盘爆满
这时我们可以将Docker整个文件夹剪切到别的路径(注意要取消开机自动启动Docker,不然这个文件会在占用中)

剪切完后cmd创建链接(powershell不行)

mklink /J "C:\Users\MXQ\AppData\Local\Docker" D:\IDE\Docker

这样就达到更换镜像路径的目的了
因为wsl2版本的docker设置里面不能直接改 所以暂时只能用这种方式

0x05

然后在上面vmware文章里面的连接或者直接去官网首页下载最新vmware

windows 三大虚拟环境(Hyper-v&vmware&docker)共存_第4张图片

你可能感兴趣的:(折腾)