开启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. Kafka 集群调优

    更多内容,前往 IT-BLOG 单个 kafka服务器足以满足本地开发或 POC要求,使用集群的最大好处是可以跨服务器进行负载均衡,再则就是可以使用复制功能来避免因单点故障造成的数据丢失.在维护 Ka ...

  2. MySQL8.0 创建用户及授权 - 看这篇就足够了

    什么时候会用到 对接外系统时,需要给其余系统开放访问权限 本系统中,分权限管理数据,防止root权限删库跑路 mysql版本 MySql8.0+ 具体步骤 1.命令行进入MySql 使用 mysql ...

  3. GO实现Redis:GO实现Redis的AOF持久化(4)

    将用户发来的指令以RESP协议的形式存储在本地的AOF文件,重启Redis后执行此文件恢复数据 https://github.com/csgopher/go-redis 本文涉及以下文件: redis ...

  4. Node工程的依赖包管理方式

    作者:京东零售 陈震 在前端工程化中,JavaScript 依赖包管理是非常重要的一环.依赖包通常是项目所依赖的第三方库.工具和框架等资源,它们能够帮助我们减少重复开发.提高效率并且确保项目可以正确的 ...

  5. itext 生成pdf ----hello world

      iText是Java中用于创建和操作PDF文件的开源库.它是由Bruno Lowagie.Paulo Soares等人编写的.Ohloh报告称2001年以来[2],26个不同的贡献者进行了1万多次 ...

  6. SpringBoot 使用 Sa-Token 完成权限认证

    一.设计思路 所谓权限认证,核心逻辑就是判断一个账号是否拥有指定权限: 有,就让你通过. 没有?那么禁止访问! 深入到底层数据中,就是每个账号都会拥有一个权限码集合,框架来校验这个集合中是否包含指定的 ...

  7. 使用扩展函数方式,在Winform界面中快捷的绑定树形列表TreeList控件和TreeListLookUpEdit控件

    在一些字典绑定中,往往为了方便展示详细数据,需要把一些结构树展现在树列表TreeList控件中或者下拉列表的树形控件TreeListLookUpEdit控件中,为了快速的处理数据的绑定操作,比较每次使 ...

  8. MQTT-主题基础

    MQTT主题 MQTT的主题是一个utf-8编码的字符串,最大长度65535字节,严格区分大小写 MQTT主题支持分层结构,主题分隔符用'/'表示,主题的层级长度可以为0 # 将主题划分为3个层级 ' ...

  9. Python 字典定义

    字典 能将相关信息关联起来 可存储的信息几乎不受限制 # 案例1 alien_0 = {'color':'green','points':5} print(alien_0['color']) prin ...

  10. windows11 下使用 阿里云 modelscope docker 环境 运行参考

    昨天看视频 我们做了个能对话的AI派蒙,免费给大家玩! 发现阿里有一个语音转文字的模型(paraformer),之前处理这种需求一直都是直接调用服务商提交好的API接口 突然想尝试一下本地搭建,虽然和 ...