开启WSL2,获得docker desktop的最佳性能

windows默认拥有WSL1

PS C:\Users\supermao> wsl --list --verbose
NAME STATE VERSION
* kali-linux Stopped 1
PS C:\Users\supermao> kali
┏━(Message from Kali developers)
┃
┃ This is a minimal installation of Kali Linux, you likely
┃ want to install supplementary tools. Learn how:
┃ ⇒ https://www.kali.org/docs/troubleshooting/common-minimum-setup/
┃
┗━(Run: “touch ~/.hushlogin” to hide this message)
┌──(supermao㉿DESKTOP-TILPHEL)-[~]
└─$

我在microsoft store里下载了kali,默认是wsl1。kali只是我的子系统,使用desktop无需专门下载kali,只需要安装wsl2

使用管理员身份打开powershell命令行

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

wsl --set-default-version 2

这个命令设置了将来新安装的WSL发行版的默认版本为WSL 2

WSL2依赖于hyperv

WSL2它实际上运行在一个轻量级的Hyper-V虚拟机中,并使用了一个真正的Linux内核。这使得WSL2能够提供与Linux更接近的性能和兼容性。

在docker-desktop里选择WSL2 based engine

前提基于hyperv已经开启

管理员 打开 powershell

PS C:\Windows\system32> bcdedit /set hypervisorlaunchtype auto

条命令打开hyperv 去兼容 wsl2 执行后重启

如果关闭了hpyerv wsl2将无法启动

C:\Users\supermao>wsl
当前计算机配置不支持 WSL2。
请启用“虚拟机平台”可选组件,并确保在 BIOS 中启用了虚拟化。
有关信息,请访问https://aka.ms/enablevirtualization
Error code: Wsl/Service/CreateInstance/CreateVm/0x80370102

关闭hyperv对于wmware是有利的



能够使用intel vt-x/ept 开启后可以使用wmware的虚拟机嵌套

开启hyperv2 wmware将无法使用intel vt-x/ept

开启hyperv对于wmware是负优化,降低性能的同时,无法实现kvm等虚拟机嵌套

侧通道缓解。侧通道缓解可增强安全性,但也会降低性能。这一条wmware虚拟机的开机信息与hyperv的开启也有关

hyper-v和vmware的vt-x是有冲突的

关闭hyperv,获取更多的VMware功能

管理员打开powershell

PS C:\Windows\system32> bcdedit /set hypervisorlaunchtype off

操作成功完成。执行后重启

可以正常使用wmware虚拟机嵌套,但是无法打开docker desktop以及wsl2

至少降级wsl2为wsl1,可以在使用 vt-x/ept的同时使用kali

关闭hyperv后无法对kali进行wsl1的转换

PS C:\Windows\system32> wsl --set-version kali-linux 1
正在进行转换,这可能需要几分钟时间。
当前计算机配置不支持 WSL2。
请启用“虚拟机平台”可选组件,并确保在 BIOS 中启用了虚拟化。
有关信息,请访问https://aka.ms/enablevirtualization
Error code: Wsl/Service/CreateVm/0x80370102
PS C:\Windows\system32>

无法对kali进行wsl1的转换

先开启hyperv

PS C:\Windows\system32> bcdedit /set hypervisorlaunchtype auto

操作成功完成 执行后重启

管理员执行powershell

PS C:\Windows\system32> wsl --set-version kali-linux 1
正在进行转换,这可能需要几分钟时间。
操作成功完成。
PS C:\Windows\system32> wsl --set-default-version 1
操作成功完成。
PS C:\Windows\system32>

进入cmd进行查看

C:\Users\supermao>wsl --list --verbose
NAME STATE VERSION
* kali-linux Running 1
docker-desktop Stopped 2
docker-desktop-data Stopped 2

PS C:\Windows\system32> bcdedit /set hypervisorlaunchtype off

操作成功完成 执行后重启

docker desktop 与 wmware tv-x的更多相关文章

  1. Mac OS用docker Desktop安装单节点kubernetes

    方案: 安装方式:阿里云minikube,k8s官方minikube,kubeadm, docker Desktop中自带第k8s 安装环境:在linux虚拟机中安装k8s,在macos中安装k8s, ...

  2. Homebrew 安装 Docker Desktop for Mac

    无意中发现Homebrew现在已经支持Docker Desktop for Mac了,因此特意把原来通过 https://docs.docker.com/docker-for-mac/install/ ...

  3. macOS 安装 Docker Desktop CE(转)

    现在基本上都使用docker进行部署项目,所以还是有必要学习下,关于docker的简介这里就不在描述,本文转载自https://yeasy.gitbooks.io/docker_practice/co ...

  4. Docker Desktop for Windows 安装步骤

    Docker Desktop for Windows 安装要求 Docker Desktop for Windows需要运行Microsoft Hyper-V.如果需要,Docker Desktop ...

  5. (二) Windows 进行 Docker CE 安装(Docker Desktop)

    参考并感谢 官方文档: https://docs.docker.com/docker-for-windows/install/ 下载地址 https://download.docker.com/win ...

  6. Docker Desktop: Error response from daemon: driver failed programming external connectivity on endpoint xxx 问题

    右击任务栏 Docker 图标 `Restart` 或 `Quit Docker Deskto` 后之前正常的 zookeeper 容器不会自动启动 通过命令 docker start zk1 启动报 ...

  7. Docker zookeeper 集群 for Docker desktop (win)

    docker desktop win10 环境下的 zookeeper 容器创建并运及可能出现的问题: https://github.com/poazy/boazy-learn/blob/master ...

  8. Docker Desktop for Windows Experience

    Docker Desktop for Windows Experience: https://github.com/poazy/boazy-learn/blob/master/doc/Docker%2 ...

  9. Mac Docker Desktop "Mounts denied: EOF."解决方法

    环境 系统: Mac OS Catalina Docker Desktop: 问题描述 在Mac环境下创建容器时用"-v"参数挂载目录出现"docker: Error r ...

  10. 访问docker desktop创建的Hyper-v虚拟机DockerDesktopVM

    平常我们部署kubernetes ,一般都是先安装个linux操作系统,不管是centos或者ubuntu或者其他,都是我们手工操作的.安装好的这个操作系统都开启了SSH,能够远程登录访问. 但是do ...

随机推荐

  1. 【深入浅出 Yarn 架构与实现】6-2 NodeManager 状态机管理

    一.简介 NodeManager(NM)中的状态机分为三类:Application.Container 和 LocalizedResource,它们均直接或者间接参与维护一个应用程序的生命周期. 当 ...

  2. Flask框架使用蓝图划分目录、g对象、使用数据库连接池链接数据库

    目录 一.使用蓝图划分项目目录 1.蓝图的介绍 2.蓝图的使用 二.介绍flask框架的g对象 1. g对象是什么? 2. 使用代码再次解释g对象 三.使用数据库连接池链接数据库 1. 引入数据库连接 ...

  3. pysimplegui之元素常用属性

    常用元素参数 您将在几乎所有元素创建调用中看到的一些参数包括: key - 与 window[key].事件和返回值字典一起使用 工具提示tooltip - 将鼠标悬停在元素上,您将获得包含此文本的弹 ...

  4. sync.Pool:提高Go语言程序性能的关键一步

    1. 简介 本文将介绍 Go 语言中的 sync.Pool并发原语,包括sync.Pool的基本使用方法.使用注意事项等的内容.能够更好得使用sync.Pool来减少对象的重复创建,最大限度实现对象的 ...

  5. Android 为什么事件分发的入口函数是dispatchTouchEvent

    参考:https://xiaozhuanlan.com/topic/8946537021 从触摸屏幕到事件在底层传输最终会到: private int processPointerEvent(Queu ...

  6. 【SpringCloud】(一)分布式理论

    分布式架构理论 方法远程调用 各个模块运行于不同的tomcat,模块之间通过网络进行调用. 远程调用的技术演进 1 WebService 解决应用程序之间的跨平台访问问题,基于SOAP/WSDL协议, ...

  7. 【Spring注解驱动】(三)servlet3.0

    前言 今天是7.21日,终于是看完了..暑假在家学习是真的差点意思 1 Servlet 3.0简介 Servlet 2.0是在web.xml中配置servlet filter.listener.Dis ...

  8. elasticsearch升级和索引重建。

    1.背景描述   2020年团队决定对elasticsearch升级.es(elasticsearch缩写,下同)当前版本为0.9x,升级到5.x版本.es在本公司承载三个部分的业务,站内查询,订单数 ...

  9. 图计算引擎分析--GridGraph

    作者:京东科技 李永萍 GridGraph:Large-Scale Graph Processing on a Single Machine Using 2-Level Hierarchical Pa ...

  10. 笔记:C++学习之旅---引用

    笔记:C++学习之旅---引用 什么是引用? 引用就是别名,引用并非对象,相反的,他只是为一个已经存在的对象所起的另外一个名字. /*引用就是别名*/ #include <iostream> ...