WSL2+Terminal+Docker+VScode配置调试
最近几天一直想找个方法把VMware虚拟机和远程连接工具MobaXterm这一组配合替换掉,因为每次开启虚拟机操作Ubuntu都需要占用很大的内存,而且要等好久好久才能开启!!!后面还要使用MobaXterm或者Xshell在远程连接进行操作总觉得好麻烦,这两天发现了了WSL2这个好东西,设置完成利用微软Terminal直接操作ubuntu和cmd,powershell以及微软的Azure云。而其打开极其迅速,内存占用少,不用再那么操心了😄。因此特此记录一下~
先放一张我设置好的图哈哈~
什么是WSL2?
WSL 2(Windows Subsystem for Linux) 是适用于Windows下Linux 子系统体系结构的一个新版本,它支持适用于 Linux 的 Windows 子系统在 Windows 上运行 ELF64 Linux 二进制文件。 它的主要目标是提高文件系统性能,以及添加完全的系统调用兼容性。相对于WSL1的一些缺点进行了改进,有了很大的提升。
开始操作吧
步骤 1 - 启用适用于 Linux 的 Windows 子系统
需要先启用“适用于 Linux 的 Windows 子系统”可选功能,然后才能在 Windows 上安装 Linux 分发。
以管理员身份打开 PowerShell 并运行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
下面需要更新到 WSL 2,等待重新启动计算机,然后继续执行下一步。
步骤 2 - 检查运行 WSL 2 的要求
若要更新到 WSL 2,需要运行 Windows 10。
- 对于 x64 系统:版本 1903 或更高版本,采用 内部版本 18362 或更高版本。
- 对于 ARM64 系统:版本 2004 或更高版本,采用 内部版本 19041 或更高版本。
若要检查 Windows 版本及内部版本号,选择 Windows 徽标键 + R,然后键入“winver”,选择“确定”。 (或者在 Windows 命令提示符下输入 ver
命令)。
步骤 3 - 启用虚拟机功能
安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。 计算机需要虚拟化功能才能使用此功能。
以管理员身份打开 PowerShell 并运行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重新启动 计算机,以完成 WSL 安装并更新到 WSL 2。
步骤 4 - 下载 Linux 内核更新包
-
下载最新包:
备注:如果使用的是 ARM64 计算机,请下载 ARM64 包。 如果不确定自己计算机的类型,请打开命令提示符或 PowerShell,并输入:
systeminfo | find "System Type"
。 -
运行上一步中下载的更新包。 (双击以运行 - 系统将提示你提供提升的权限,选择“是”以批准此安装。)
安装完成后,请继续执行下一步 - 在安装新的 Linux 分发时,将 WSL 2 设置为默认版本。
步骤 5 - 将 WSL 2 设置为默认版本
打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:
wsl --set-default-version 2
步骤 6 - 安装所选的 Linux 分发
-
打开 Microsoft Store,并选择你偏好的 Linux 分发版(这里我选择的是Ubuntu18.04 LTS)。
-
下载安装
-
为新的Linux分发版创建用户账户和密码
4.可以在开始栏打开Ubuntu18.04啦,进行操作
祝贺你!现已成功安装并设置了与 Windows 操作系统完全集成的 Linux 分发!
想看更详细操作的见下面官方链接在 Windows 10 上安装适用于 Linux 的 Windows 子系统 (WSL) | Microsoft Docs
一体化它不香吗
根据上述操作,我们已经完成了WSL2的安装操作,可以在本地直接打开ubuntu进行操作,但是平时使用过程中可能我们还需要开多个ubuntu操作窗口,还可能用到cmd命令或者powershell命令(一般用powershell,因为powershell是cmd的增强版)。这时候咱们就要开多个窗口,那岂不是烦死啦,这时候Terminal(Windows终端)出来了!!!
Windows 终端可启用多个选项卡(在多个 Linux 命令行、Windows 命令提示符、PowerShell 和 Azure CLI 等之间快速切换)、创建键绑定(用于打开或关闭选项卡、复制粘贴等的快捷方式键)、使用搜索功能,以及使用自定义主题(配色方案、字体样式和大小、背景图像/模糊/透明度)。
安装Terminal很简单,打开 Microsoft Store搜索Terminal安装即可(推荐固定在开始栏,方便打开)。
下面说几个常用的Terminal配置:
注意:Terminal的配置都是在窗口向下的箭头设置
进行配置,格式是json
![](https://img2020.cnblogs.com/blog/2293300/202102/2293300-20210213222244104-878429865.png)
-
每次打开Termial都可以发现默认的是powershell,若我们想要默认打开ubuntu界面,则可以在设置文件中进行更改,打开设置文件可以看到
list
字段,里面对应的就是各个命令集。每一个都有唯一的
guid
,我们可以复制ubuntu的guid到defaultProfile
字段中,下次打开就是默认ubuntu了。 -
Termianl的黑窗口大家相比已经看烦了,我们可以在
schemes
字段内更换Terminal的界面颜色配置给大家推荐一个网站,进行界面颜色主题的配置:>_TerminalSplash - Windows Terminal Themes
在
defaults
字段中可以配置Termial的背景图及透明度。如下: -
可以在 Windows 终端中创建新的垂直或水平窗格。 垂直拆分将在焦点窗格的右侧打开一个新窗格,而水平拆分将在焦点窗格下方打开一个新窗格。 若要创建默认配置文件的新垂直窗格,可以键入 alt+shift+
+
。 若要创建默认配置文件的新水平窗格,可以键入 alt+shift+-
。注意这里新建的窗口都是一个命令集的窗口,如果想要创建不同的命令集还有上述效果,可以按住alt
+鼠标点击窗口上方向下的箭头选择需要的命令集。如下: -
最后注意一点,WSL2将你本地的c盘,d盘等window内置驱动盘都挂载在/mnt目录下,可以在ubuntu中直接操作,需要谨慎操作!!!
想看更详细的操作可以看下面的官方文档:Windows 终端安装 | Microsoft Docs
目前就介绍到这啦~
2021.2.14日补更~
WSL2下安装Docker
安装docker,以下方式二选一
-
原生linux安装docker方式
因为wsl2已经完整使用了linux内核了,此种方式和先前在linux虚拟机安装docker类似,这里不加赘述。
-
Docker Desktop for windows方式
-
Docker 也专门开发了可以使用
WSL2
中的Docker
守护进程的桌面管理程序, 打开 Docker Desktop WSL2 backend 页面,下载最新的 Docker Desktop for Windows 程序 ,建议下载stable版本。下载地址:https://www.docker.com/products/docker-desktop -
启动Docker Desktop for Windows,点击“设置”按钮,启用基于
WSL2
的引擎复选框(Use the WSL 2 based engine)
一般默认在安装的时候默认勾选了。 -
在 Resources 的WSL Integration中设置要从哪个 WSL2 发行版中访问 Docker,如下图使用的是 Ubuntu18.04
-
配置docker镜像源,原因咱们都知道的~ 在Docker Engine中设置,比原生linux设置方便多了。这里我用的是阿里云的docker镜像加速器。
# 打开这个地址:http://cr.console.aliyun.com/cn-hangzhou/instances/mirrors # 使用支付宝快捷登录阿里云可以获取镜像地址 # Docker版本要求≥1.12 #当然也可以换其他源 “https://docker.mirrors.ustc.edu.cn”, “https://registry.docker-cn.com”, “http://hub-mirror.c.163.com” “http://hub.daocloud.io”
-
重启 Docker desktop for Windows,重启完成后我们就可以在 WSL2里面使用 docker 命令了,这里我们可以测试一下
docker run hello-world
-
说明
- WSL2下原生linux安装docker方式和完全linux虚拟机安装docker类似,区别在于WSL2下的linux不支持systemd。
- Docker Desktop for windows方式,其实质是利用docker的C/S架构,将windows模式下的docker对应docker.sock,docker客户端二进制和docker的数据目录挂载到WSL2里面的linux机器,在此linux机器下执行docker命令(docker命令为docker客户端),实质为客户端通过挂载的/var/run/docker.sock文件与windows里面的dockerd服务端进程通信。
- Windows Docker Desktop 比直接在 WSL2 装 Docker 的优点是能更好的跟你的工具集成,比如 IDE、PowerShell、cmd之类的东西,但是其它就没有区别(网络上搜的回答,其实我也感觉二者没什么本质区别,看个人喜好吧~)
这里就算安装完成wsl2+docker啦,但是系统默认安装的位置是c盘,特别是docker在下载镜像时,有的镜像比较大,长此以往c盘怕是要爆了💥。我们可以将其更换到其他磁盘win10下修改wsl2和docker位置
2021.2.15日补更~
VScode配置
咱们接下来进行vscode的配置,这里我以golang为例。
下载好vscode安装后,下载所需要的插件进行安装,我个人安装的插件如下图:
settings.json中的配置如下:
{
//git配置
"git.path": "D:\\tools\\Git\\Git\\bin\\git.exe",
"git.autofetch": false, //一般设置为false
//vscode配置
"workbench.startupEditor": "newUntitledFile",
"explorer.compactFolders": false,
"explorer.confirmDragAndDrop": false, //移动文true件时是否确认移动
"explorer.confirmDelete": true, //删除文件时是否确认删除
"workbench.iconTheme": "vscode-icons", //工作台的图标
"files.autoSave": "onFocusChange", //失去焦点时自动保存
//golang配置
"go.goroot": "D:\\tools\\go",
"go.gopath": "D:\\Golang-workspace",
"go.useLanguageServer": true, //golang智能提示 默认是关闭的 因为还不是特别成熟
"go.alternateTools": {
"go-langserver": "gopls" //gopls这个很方便 代码提示补全和查询源码秒开
},
"[json]": {
"editor.quickSuggestions": {
"strings": true
},
"editor.suggest.insertMode": "replace"
},
"[go]": {
"editor.insertSpaces": false,
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
},
"files.exclude": {
"**/.idea": true
},
}
vscode通过remote wsl远程连接wsl2情况如下图所示:
这样,我们就可以在vscode中完成开发,测试,部署的情况啦~
经过几天,查了一些资料,算是把这一套配置完成啦~后续再多多熟悉熟悉操作