专栏首页服务端思维WSL2:我在原生的Win10玩转Linux系统

WSL2:我在原生的Win10玩转Linux系统

今天,我跟大家分享一个好玩的东西:WSL 2(Windows Subsystem for Linux 2)。WSL 2 很有意思,它是基于Hyper-V 功能的子集提供了“真正的 Linux 内核”。怎么理解这句话呢?大家设想,我们平时的研发办公环境需要Windows,而开发环境需要 Linux 系统,我们会怎么做?

  • 方案一:安装主机双系统,实现物理隔离。
  • 方案二:安装虚拟机,例如使用 VMware 来实现完整的使用体验。
  • 方案三:使用 Docker 容器。

其中,方案一成本最高,需要两台以上的物理机,而方案二资源消耗大、运行效率低,而方案三“容器化”方案是我们目前较多采用的方案。而最新的 Windows 版本(对于x64系统:版本1903或更高版本,以及内部版本18362或更高版本)通过 WSL2 技术支持在原生的系统上使用到 Linux 内核,实现 Linux 子系统化。

WSL 2 使用之旅

现在,让我们来一探究竟吧。要更新到WSL 2,我们必须正在运行 Windows 10。这里,官方对于 Windows 10 版本是由要求的。

  • 对于 x64 系统:版本 1903 或更高版本,以及内部版本 18362 或更高版本。
  • 对于 ARM64 系统:2004 或更高版本,内部版本19041或更高。
  • 低于18362 的内部版本不支持 WSL2。使用 Windows Update Assistant 来更新 Windows 版本。

我们可以通过选择 Windows徽标键+R 键入 winver ,然后选择确定。

下图,就是我的电脑的版本号了。如果你运行的是 Windows 10 版本1903 或 1909,请从 Windows 菜单中打开“设置”,导航至“更新和安全”,然后选择“检查更新”。

紧接着,我们需要确保开启 适用于Linux的Windows子系统虚拟机平台 配置项。

这里,我们也可以以管理员身份打开 PowerShell 用命令方式安装。

首先启用 虚拟机平台 功能。

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

然后重启下,启用 适用于Linux的Windows子系统 功能。

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

然后呢,我们还需要下载最新 Linux 内核更新程序包。下载地址:https://wslstorestorage.blob.core.windows.net/wslblob/wslupdatex64.msi

安装完成后,将 WSL 2 设置为默认版本。

wsl --set-default-version 2

最后,我们安装自己需要的 Linux 发行版。

我比较熟悉使用 CentOS,而应用商店中的 CentOS 是收费版本,而 github 上面有 CentOS 官方开源的安装包,我们这里使用 github 上的安装包进行安装。地址:https://github.com/CentOS/sig-cloud-instance-images/

安装完毕后,进入命令行,可以查看版本清单。

wsl -list -verbose

通过输入 wsl 命令都可以进入CentOS7系统。

至此,我们可以在原生的 Windows 10 玩转 Linux 系统了。

Docker Desktop WSL 2

现在,我来说一个更好玩的特性。因为,WSL 2 引入了重大的体系结构更改,它是由 Microsoft 构建的完整 Linux 内核,允许 Linux 容器在没有仿真的情况下本机运行。因此,通过在 WSL 2 上运行的 Docker Desktop,用户可以利用 Linux 工作区。此外,WSL 2 改进了文件系统共享,启动时间,并允许 Docker Desktop 用户访问一些很酷的新功能。Docker Desktop 使用 WSL 2 中的动态内存分配功能极大地减少了资源消耗。这意味着,Docker Desktop仅使用所需数量的所需 CPU 和内存资源,同时使 CPU 和内存密集型任务(如构建容器)运行得更快。此外,使用WSL 2,冷启动后启动 Docker 守护程序所需的时间明显更快。与之前版本的 Docker Desktop 几乎需要一分钟相比,启动 Docker 守护程序所需的时间不到 10 秒。

在安装 Docker Desktop WSL 2 之前,必须完成以下步骤:

  • 下载 Docker Desktop Stable 2.3.0.2 或更高版本。
  • 安装 Windows 10 版本 1903 或更高版本。
  • 在 Windows 上启用 WSL 2 功能。

参考文献

  • Windows Subsystem for Linux Installation Guide for Windows 10
  • Docker Desktop WSL 2 backend

本文分享自微信公众号 - 服务端思维(gh_c3775931ac9d),作者:梁桂钊

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-11-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 探究导致 MySQL 慢查询的因素:从硬件、网络到数据库的深度剖析

    不管是开发同学还是DBA,想必大家都遇到慢查询(select,update,insert,delete 语句慢),影响业务稳定性。这里说的慢,有两个含义一是比正...

    用户2781897
  • 整理了一份 Docker系统知识,从安装到熟练操作看这篇就够

    当我们在工作中,一款产品从开发设计到上线运行,其中需要开发人员和运维工程师,开发人员负责代码编写,开发产品,运维工程师需要测试环境,产品部署。这之间就会有分歧。

    用户2781897
  • 手把手教你使用 OpenResty 搭建高性能服务端!

    Linux Socket编程领域为了处理大量连接请求场景,需要使用非阻塞I/O和复用,select、poll、epoll是Linux API提供的I/O复用方式...

    用户2781897
  • 让.NetCore程序跑在任何有docker的地方

    Windows上下载地址:https://docs.docker.com/docker-for-windows/install/(window上安装的常见问题和...

    Peyshine
  • DNS迭代穷举脚本

    在普通的DNS穷举中,如果使用字典进行穷举,会发现没有哪个字典能穷举完所有的域名,国外安全研究者在常年累月的DNS记录收集中发现,很多域名有大量的短主机名,并且...

    FB客服
  • 一起学Excel专业开发12:条件格式的2个应用技巧

    条件格式是Excel中最为强大的功能之一,能够让我们不使用VBA代码,就能得到很多特殊的效果,例如对满足设定条件的指定单元格设置特定的格式,而在条件不满足时又能...

    fanjy
  • Kubernetes之自定义hosts

    在使用k8s 中,难免有一些实例需要添加hosts绑定,最土的办法就是把这个hosts写在dockfile里。但是这样稍显麻烦,其实k8s本身就可以实现这样的功...

    SY小站
  • js对象和jquery对象互相转化

    IT故事会
  • 如何区分光接入网OLT, ONU, ODN,ONT?

    光接入网络(点此查看什么是光接入网)就是以光为传输介质的接入网络,替代铜线,用于接入每个家庭.光接入网络。光接入网络一般有三个部分组成: 光线路终端OLT,光网...

    亿源通科技HYC
  • Windows上的Linux容器预览

    微软正在为Windows Server的下一个重大更新做准备,其中的一些新特性对于Docker用户来说是非常令人兴奋的。其中最重要的增强之处是,Docker现在...

    Sepmer Fi

扫码关注云+社区

领取腾讯云代金券