开启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. Treemap按key和value降序排序

    Treemap是一种根据键排序的数据结构,可以通过重载它的比较器来按照值排序.要按键排序,可以使用默认的比较器,而要按值排序,可以创建一个自定义的比较器并将其传递给treemap的构造函数. 以下是按 ...

  2. Vue+ElementUI动态显示el-table某列(值和颜色)的方法

    方法一:结合 template scope组件和 v-if 语法判断 例1:值 <el-table-column prop="status" label="车辆状态 ...

  3. 有执行语句:console.log(fn2(2)[3]),补充函数,使执行结果为"hello"

    function fn2(a){ return [1,2,3,"hello"];}console.log(fn2(2)[3])//hello 这个2是混淆视线的,即使没有这个2.函 ...

  4. Chrome浏览器插件 Undo Close Tab (恢复关掉的标签页)

    背景 如果您经常使用Chrome浏览器,也许有时候会意外关闭一个标签页,从而丢失您正在查看的内容.这时您可能会感到非常烦恼,并希望能够迅速找回这个标签页.当然,您可以通过点击浏览器历史记录中的条目来找 ...

  5. 最简单Openwrt ipv6配置,局域网WAN6中继模式获取原生ipv6地址

    条件 condition wan 和 wan6 是默认配置     Wan and wan6 are the default configurations 同时wan6可以获取到原生IPv6     ...

  6. kubernetes核心实战(七)--- job、CronJob、Secret

    10.job任务 使用perl,做pi的圆周率计算 [root@k8s-master-node1 ~/yaml/test]# vim job.yaml [root@k8s-master-node1 ~ ...

  7. oracle删除一张表后,索引,同义词,视图,约束会被删除么

    问题描述:看到有一道题,说删除一张表之后,什么会被关联删除 进行测试,看看一张表什么会被关联删除,进行scoot下的EMP进行测试 一.创建测试需求用例 表结构: SQL> desc emp; ...

  8. Terraform 系列-Terraform 简介

    系列文章 Terraform 系列文章 前言 最近在使用 Terraform 来置备 OCI 的 Always Free Tier, 发现它非常好用.总结学习下:Terraform 的基础知识. 什么 ...

  9. 从源码角度深入解析Callable接口

    摘要:从源码角度深入解析Callable接口,希望大家踏下心来,打开你的IDE,跟着文章看源码,相信你一定收获不小. 本文分享自华为云社区<一个Callable接口能有多少知识点?>,作者 ...

  10. Rust -- 模式与匹配

    1. 模式 用来匹配类型中的结构(数据的形状),结合 模式和match表达式 提供程序控制流的支配权 模式组成内容 字面量 解构的数组.枚举.结构体.元祖 变量 通配符 占位符 流程:匹配值 --&g ...