原文地址:梁桂钊的博客

博客地址:http://blog.720ui.com

欢迎关注公众号:「服务端思维」。一群同频者,一起成长,一起精进,打破认知的局限性。

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/wsl_update_x64.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 功能。

参考文献

写在末尾

【服务端思维】:我们一起聊聊服务端核心技术,探讨一线互联网的项目架构与实战经验。让所有孤军奋战的研发人员都找到属于自己的圈子,一起交流、探讨。在这里,我们可以认知升级,连接顶级的技术大牛,连接优秀的思维方式,连接解决问题的最短路径,连接一切优秀的方法,打破认知的局限。

更多精彩文章,尽在「服务端思维」!

WSL2:我在原生的Win10玩转Linux系统的更多相关文章

  1. Linux 桌面玩家指南:01. 玩转 Linux 系统的方法论

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  2. 玩转 Linux 系统的方法论

    Linus 说“Just for fun”,而我要说“Just for 折腾”.想知道我是怎样折腾 Linux 的,请看下面这个截图: 从这个截图可以看出,我为了“折腾” Linux 系统,在我的电脑 ...

  3. Linux江湖01:玩转Linux系统的方法论 (转载)

    http://www.blogjava.net/youxia/archive/2015/01/08/linux001.html 2014年上半年,我是在写RCP系列.然后,由于要准备研究生毕业论文和答 ...

  4. win10 vmware下Linux系统联网

    本来,这个问题网上资源很多的,但是就因为多,就变得杂了,对于许多新手,并不理解为啥,故记录下来方便以后使用.此处我采用配置VWmare虚拟网关(上学期刚刚学计算机网络,正好可以复习下).关于虚拟机下L ...

  5. Install Ubuntu On Windows10(win10上安装linux系统)

    一.准备: 硬件:U盘 软件:ultraiso.Ubuntu镜像文件 二.安装linux: 1.Ubuntu官网(http://www.ubuntu.org.cn/download/alternati ...

  6. 使用win10 hyper-v安装linux系统

    1.控制面板---程序---启动或关闭windows功能---启动hyper-v管理器---重启 2.配置网络 因为公司内网通过ip验证,而通过桥接的方式,虚拟机就相当于物理机所在的网络中的一台真实主 ...

  7. 如何用win10自带linux系统学习c语言---解决gdb使用问题

    1.windos store---ubuntu18 2.改安装源 3.装gcc   apt-install 即可 4.装gdb       apt-instll 即可 5.写helloworld 记做 ...

  8. win10+Ubuntu16.04双系统下深度学习环境的搭建

    环境零零碎碎地搭了三四天,虽然碰到各种问题,但还是搭建好了,自己整理记录下,同时也算给有需要的人一些指导吧 一.双系统的安装 Win10硬盘管理助手 压缩或者直接利用未使用的空间,空间大小自定,将腾出 ...

  9. Win10玩魔兽争霸不能全屏显示的设置教程

    Win10玩魔兽争霸不能全屏显示的设置教程: 1.右击桌面左下角的windows图标,显示图片内容,然后点击运行: 2.点击运行,有个输入框,输入regedit,点击确认: 3.显示win10注册表, ...

随机推荐

  1. MeteoInfoLab脚本示例:站点数据绘制等值线

    站点数据绘制等值线需要首先将站点数据插值为格点数据,MeteoInfo中提供了反距离权法(IDW)和cressman两个方法,其中IDW方法可以有插值半径的选项.这里示例读取一个MICAPS第一类数据 ...

  2. Flask实现websocket

    from flask import Flask,request user_socket_dict = {} app = Flask(__name__) @app.route("/conn_w ...

  3. Windows 上的苹果 mac Time Machine 时间机器免费替代品 FreeFileSync 操作指南

    Windows 上的苹果 mac Time Machine 时间机器免费替代品 FreeFileSync 操作指南 前言:为什么不用 Windows 10 自带的备份还原呢?因为不稳定,不能很好的备份 ...

  4. Zookeeper入门看这篇就够了

    https://blog.csdn.net/java_66666/article/details/81015302

  5. 每天一个linux命令:ps命令

      Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进 ...

  6. 智能DNS的实现

    网络路径远,导致用户访问延迟 各个运营商之间的带宽有阀口. GSLB 就近的返回服务器的地址 CDN网络 内容分发网络 Content Delivery Network CND服务商 阿里 腾讯 蓝汛 ...

  7. pyqt设置窗口图标

    import sys from PyQt5.QtWidgets import QMainWindow,QApplication from PyQt5.QtGui import QIcon ''' 窗口 ...

  8. ES & Filebeat 使用 Pipeline 处理日志中的 @timestamp

    使用 Pipeline 处理日志中的 @timestamp Filebeat 收集的日志发送到 ElasticSearch 后,会默认添加一个 @timestamp 字段作为时间戳用于检索,而日志中的 ...

  9. 扩展中国剩余定理(EXCRT)快速入门

    问题 传送门 看到这个问题感觉很难??? 不用怕,往下看就好啦 假如你不会CRT也没关系 EXCRT大致思路 先考虑将方程组两两联立解开,如先解第一个与第二个,再用第一个与第二个的通解来解第三个... ...

  10. 微服务通信之ribbon实现原理

    前言 上一篇我们知道了feign调用实现负载均衡是通过集成ribbon实现的.也较为详细的了解到了集成的过程.现在我们看一下ribbo是如何实现负载均衡的.写到这里我尚未去阅读源代码,我在这里盲猜一下 ...