开启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. Spring面试题持续更新

    这些都是我在微信公众号上看到的一些很有质量的文章,于是乎,自己记录一遍供自己学习 Spring中使用了哪些设计模式 单例模式:Spring中的Bean 模式都是单例的. 工厂模式:工厂模式主要是通过B ...

  2. BrightlyPro - 照片视屏后期自动调色增亮工具

    BrightlyPro 自动增强您的照片和视频,你最需要它.通过一个滑块,BrightlyPro 立即使您的照片自适应地亮起来,同时保持光影之间令人愉悦的平衡,而不会扭曲已经点亮的区域. 下载 ➤ B ...

  3. QML 界面切换的几种方法(带示例代码)

    QML 界面切换的几种方法(带示例代码)

  4. 设计模式(三十一)----综合应用-自定义Spring框架-自定义Spring IOC-定义解析器、IOC容器相关类

    3 定义解析器相关类 3.1 BeanDefinitionReader接口 BeanDefinitionReader是用来解析配置文件并在注册表中注册bean的信息.定义了两个规范: 获取注册表的功能 ...

  5. Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

    Redhat7/CentOS7 网络配置与管理(nmtui.nmcli.GNOME GUI.ifcfg文件.IP命令) 背景:作为系统管理员,需要经常处理主机网络问题,而配置与管理网络的方法和工具也有 ...

  6. 使用frp进行内网穿透

    frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便捷的方式通过具有公网 IP 节点的中转暴露到公网. frp is a ...

  7. 通过python修改本地ip

    写在前面, 1 对于个人公司需要固定ip,而回家需要用到家里的ip, 2对于公司it人员,每台电脑都需要设置ip,,尤其批量的时候,这个作为it的自己知道 3运维人员,可以通过ip测试哪些ip可以用, ...

  8. .NET Exceptionless 本地部署踩坑记录

    仅已此文记录 Exceptionless 本地部署所遇到的问题 1.安装ElasticSearch文本 执行elasticsearch目录中的elasticsearch.bat 没有执行成功. 使用命 ...

  9. Sentinel实战

    一.Sentinel简介 Sentinel是阿里开源的面向服务流量治理的框架,官方原文是Sentinel 是面向分布式.多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由.流量控制.流 ...

  10. ES6教程笔记

    ES介绍 什么是ES ES全称 EcmaScript 是一种脚本语言的规范 Javascript为ES的实现 Ecma 是一个组织 Ecma组织 为什么要学习ES6? ES6的版本变动内容最多,具有里 ...