WSL初体验WSLLinux子系统体验原生Docker,真香!Windows的linux子系统由来已久,你体验过吗?今天就带大家折腾一下,毕竟是想甩掉VMware这种占用硬件资源太多的大VM,这篇文档送给爱折腾的你们,折腾,后浪!简单说一下本文的重点:安装WSL并选择性升级到WSL2的全过程WSL2的全过程体验原生DockerWSL是什么?WSL是WindowsSubsystemforLinux的缩写,意思是linux版的窗口子系统。引自:微软官网https://docs.microsoft.com/zh...Linux的Windows子系统让开发者可以直接运行GNU/Linux环境——包括大多数命令行工具、实用程序和应用程序Windows,未经修改,没有虚拟机的开销。您可以:从MicrosoftStore选择您最喜欢的GNU/Linux发行版。运行常见的命令行工具,例如grep、sed、awk或其他ELF-64二进制文件。运行Bashshell脚本和GNU/Linux命令行应用程序,包括:工具:vim、emacs、tmux语言:NodeJS、Javascript、Python、Ruby、C/C++、C#&F#、Rust、Go等服务:SSHD、MySQL、Apache、lighttpd、MongoDB、PostgreSQL。使用自己的GNU/Linux分发包管理器安装其他软件。使用类Unix命令行shell调用Windows应用程序。在Windows上调用GNU/Linux应用程序简单地说,Linux的Windows子系统允许开发人们可以在没有虚拟机的情况下直接在Windows上运行Linux环境,包括大多数命令行工具、程序和应用程序。使用WSL的好处是:相比在虚拟机下使用Linux,WSL占用资源更少,更流畅;WSL可以在Windows文件系统下直接读写文件,文件传输更方便;剪贴板可以直接通信。复制Windows下其他地方的文本内容,粘贴到WSL;注:其实我比较喜欢虚拟机,毕竟是模拟硬件,比较成熟稳定。启用WSL支持以使用具有管理员权限的shell来安装WSL。按Win+X,找到WindowsPowerShell(Administrator),复制执行命令。Enable-WindowsOptionalFeature-Online-FeatureNameMicrosoft-Windows-Subsystem-Linux上面的命令会激活WSL服务,然后需要重启系统。重启后,Win+R,输入appwiz.cpl,在左上角找到“启动或关闭Windows功能”,直到选中这个选项你才会看到。其实上面的命令相当于手动勾选这个功能。直接命令执行效率可能更高。安装WSL发行版,在WindowsStore搜索ubuntu,选择自己喜欢的版本,安装即可。这里我选择的是Ubuntu20.04LTS,之后的内容也是基于WSLUbuntu编写的。下载安装后,第一次打开,会初始化一段时间,然后在这里设置用户名和密码。其实我们的WSL就安装好了。接下来让我们让它更有用!aptchangesourceDebian/Ubuntu官方源在国内访问很慢,换成清华TUNA的软件源镜像PS:也可以用阿里云的镜像,我体验过没那么快(可能是我姿势不对),所以我不会推荐。执行以下命令备份apt安装源:$sudocp/etc/apt/sources.list/etc/apt/sources.list.bakvim编辑sources.list:$sudovim/etc/apt/sources.list更改sources.list注意:这是Ubuntu20.04LTS。如果是其他版本的ubuntu,访问【清华大学开源软件镜像站】找到对应版本的镜像配置。#默认对源镜像进行注释,以提高apt更新的速度。需要的话可以取消debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focalmainrestricteduniversemultiverse#deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focalmain受限宇宙多元宇宙debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focal-updatesmain受限宇宙多元宇宙#deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focal-updatesmain受限宇宙多元宇宙debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focal-backportsmain受限宇宙多元宇宙#deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focal-backportsmain受限宇宙多元宇宙ebhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focal-securitymain受限宇宙多元宇宙#deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focal-securitymainrestricteduniversemultiverse#预发布软件源,不建议启用#debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focal-proposedmainrestricteduniversemultiverse#deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focal-proposedmainrestricteduniversemultiverseupdatesoftware更新软件源中的所有软件列表,即可看到快了屏幕在刷,嗡嗡的$sudoapt-getupdate更新软件$sudoapt-getupgrade#更新内容有点多,大概需要几分钟,玩玩手机吧。.配置SSH服务器,我们习惯使用xshell、SecureCRT等SSH工具连接Linux,所以顺便把SSH功能开放一下,顺利使用。毕竟PowerShell用起来不是很方便!WSL上的SSH服务器不会自动配置,需要手动重新安装。首先,可以运行如下命令查看$sudoservicesshstop$sudo/usr/sbin/sshd-d如果输出信息中包含以上信息,则表示找不到密钥,重新尝试安装openssh-server即可解决问题$sudoaptpurgeopenssh-server$sudoaptinstallopenssh-server然后需要配置/etc/ssh/sshd_config,以sudo权限运行vim修改下面三个关键字,记得删除#Port22#这两个lines允许root账号和密码登录PermitRootLoginyesPasswordAuthenticationyes然后记得重启ssh服务$sudoservicesshrestart$sudoservicesshstatus如果需要用密码登录root账号,还需要设置密码$sudopasswdroot然后就可以用SSH工具连接上了,本地localhost就OK了。至此,我们的WSL已经配置完成。享受体验,安装Nginx、Redis、MySQL....来捣乱吧!这就是结局???是的,快结束了。以上就是WSL安装的全部内容。你想体验WSL2吗?在去年的Build大会上,WSL2正式上线。WSL2自带真正的Linux4.19内核,可以带来完整的系统调用兼容性,可以直接通过自动更新进行升级维护,无需更新整个WindowsLinux子系统。同时,WSL2将比第一代WSL1版本运行速度更快,提高了文件系统的I/O性能和与Linux的兼容性,并且可以直接在机器上运行Docker容器(我喜欢这个,呵呵)。然后我们查看上面我们安装的WSL版本,执行命令wsl-l-v,如果是这个结果,那么恭喜,WSL1!什么?我的结果不是这样的吗???为什么我执行命令控制台会提示一些无效的命令选项????类似下面的结果,没关系,我知道你会的,毕竟我是一步步爬过来的,继续跟我往下看。那么,接下来说使用WSL2是有门槛的。您的系统需要是满足该版本的内部版本。强调内部版本实际上是预览(不稳定)版本。那么,接下来要不要升级到WSL2,有两方面的考虑,一个是你的windows版本能不能跟得上,一个是你能承受升级预览版的风险吗?遇到不了,折腾WSL1也不错,至少能体会一下windows的进步。升级到内部预览版的步骤我先不写了。百度给你找一篇文章【Windows】如何获取WIN10内部预览版。注意:不是你填完信息马上申请内部预览版。您必须等待Windows将其推送给您。你,我等了大概三四天,发现有更新,更新完之后再执行wsl-l-v,就正常了。更新后主界面右下角会有一些内部预览版的标识。..你准备好了吗?现在让我们开始更新到WSL2,和我一起重启电脑。..更新到WSL2以启用“虚拟机平台”可选组件在安装WSL2之前,必须启用“虚拟机平台”可选功能。以管理员身份打开PowerShell并运行:dism.exe/online/enable-feature/featurename:VirtualMachinePlatform/all/norestart重新启动计算机以完成WSL安装并更新到WSL2。设置WSL2为默认版本在Powershell中运行以下命令设置WSL2为默认版本:#1.WSL提供了一个版本转换工具,可以将wsl1转换为wsl2,#注意转换时间可能会比较长,耐心等待,如果太久没有反应,时不时回车看看有没有更新wsl--set-versionUbuntu-20.042#2.设置WSL2为默认版本wsl--set-default-version2现在我们运行wsl-l-v,看到VERSION已经是2了!再次恭喜,我们已经成功从WSL1升级到WSL2!!!真正的Linux内核已经在您的Windows中了!在WSL2子系统Ubuntu中安装Docker-CE其实我升级WSL2的目的就是为了体验原来版本的Docker。哈哈,来吧,既然都来了,那就开始吧!安装Docker-CE$curl-skSLhttps://mirror.azure.cn/repo/install-docker-ce.sh|sh-s----mirrorAzureChinaCloudhttp://mirror.azure.cn/help/d...启动Docker并检查Docker版本$sudoservicedockerstart$sudodockerversion运行应用程序?你说你安装了它,但运行一个应用程序才能看到它?嗯,和Docker官网的安装步骤一样,会有一个通过运行hello-world镜像验证DockerEngine是否安装正确的步骤。$sudodockerrunhello-world我做到了,你呢?有兴趣的可以跟进练习。毕竟是稍微爬上去才得到这篇文章的。为了还原真实步骤,我安装了两次WSL。喜欢或喜欢就等于学习?不存在的,我们来练习吧!
