前景介绍:
WSL是“Windows Subsystem for Linux”的缩写,顾名思义,WSL就是Windows系统的Linux子系统,其作为Windows组件搭载在Windows10周年更新(1607)后的Windows系统中。
既然WSL是“子系统”,那么WSL的地位我们能大概推测出——
- “子系统”作为系统层的一部分,相较于应用层(虚拟机)会消耗更少的资源,并且与系统锲合度更高。
- 因为“子系统”依附于“系统”,所以“子系统”会受到一些限制。
事实上,的确是这样!只需要打开一个类似CMD的Bash命令行窗口,你的WSL就可以使用了(相当于建立了一个Session,因为WSL会一直伴随Win10的运行而运行),相对于从虚拟机启动既省时又省力。
除此之外,虽然WSL不是完整的Linux系统,但你依然可以做到绝大多数在完整Linux系统能做的事(比如vim, apt-get等)。
我们知道,Linux是一个系统内核,那么WSL是Linux发行版吗?并不是。WSL本质上是系统层面对Linux内核的支持
1.在PowerShell中安装 wsl
wsl --install
如果wsl安装不了,先将步骤2中的额外内核包下载安装
2.检查正在运行的 WSL 版本
wsl -l -v
如果 VERSION 是 1 的话,可以通过 wsl --set-version Ubuntu-22.04 2 将 version 版本改为 2
可能遇到的问题
如果将版本从1更改为2失败,(或者没有wsl,可以先完成第三步再下载后面这个内核包),需要额外的内核包,则下载https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi该内核包,并运行安装
安装完后,重启,再次将默认version版本更改为 2
3. 设windows相关配置
导航栏搜索【启用或关闭windows功能】
勾选【适用于linux和Windows子系统】和【虚拟平台】和【Windows 虚拟机监控程序平台】
以管理员身份运行PowerShell,运行
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
4.Microsoft Store应用商店下载Ubuntu 20或22版本
第一次启动需要几分钟时间
然后设置用户名,密码
这时算是安装好了Windows下的linux发行版本了
4.2 使用Winget安装PowerShell(可选)
先搜索最新版的powershell
winget search Microsoft.PowerShell
如果没有winget的话
winget install --id Microsoft.Powershell --source winget
winget install --id Microsoft.Powershell.Preview --source winget
以上任选一个版本下载即可
可能出现的问题
没有winget
在PowerShell中运行如下 去安装winget
Install-Module -Name Microsoft.WinGet.Client
更改默认启动的终端
5.安装docker destop
此时如果在Ubuntu子系统中安装docker,则无法启动docker服务,没有systemctl
可以通过安装docker destop来运行docker
- 点此下载安装最新版的docker
- 打开docker destop后进入设置页面,打开对应的ubuntu发行版本
此时无论进入WSL发行版(ubuntu)或者PwerShell都可以进行docker操作了
可能出现的问题
docker桌面版,通过左下角点开或者在桌面版上岸 ctrl+, 就会闪退
解决:
暂未解决,打开页面后,直接点击右上角的设置,进入设置页面,不要按ctrl+,或者右下角的标志
6.使用VSCODE中在远程容器中开发
1.安装 VS Code WSL 扩展
此扩展使你能够在 VS Code 中打开在 WSL 上运行的 Linux 项目(无需担心路径问题、二进制兼容性或其他跨 OS 的难题)。
2.安装 VS Code 开发容器扩展(Dev Containers)
此扩展使你能够打开容器内的项目文件夹或存储库,并利用 Visual Studio Code 的完整功能集在容器中执行开发工作。
3.安装 VS Code Docker扩展(docker)
此扩展添加了从 VS Code 内生成、管理和部署容器化应用程序的功能。 (需要开发容器扩展才能将容器实际用作开发环境。)