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 内核更新包

  1. 下载最新包:

    备注:如果使用的是 ARM64 计算机,请下载 ARM64 包。 如果不确定自己计算机的类型,请打开命令提示符或 PowerShell,并输入:systeminfo | find "System Type"

  2. 运行上一步中下载的更新包。 (双击以运行 - 系统将提示你提供提升的权限,选择“是”以批准此安装。)

安装完成后,请继续执行下一步 - 在安装新的 Linux 分发时,将 WSL 2 设置为默认版本。

步骤 5 - 将 WSL 2 设置为默认版本

打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:

wsl --set-default-version 2

步骤 6 - 安装所选的 Linux 分发

  1. 打开 Microsoft Store,并选择你偏好的 Linux 分发版(这里我选择的是Ubuntu18.04 LTS)。

  2. 下载安装

  3. 为新的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

  1. 每次打开Termial都可以发现默认的是powershell,若我们想要默认打开ubuntu界面,则可以在设置文件中进行更改,打开设置文件可以看到list字段,里面对应的就是各个命令集。

    每一个都有唯一的guid,我们可以复制ubuntu的guid到defaultProfile字段中,下次打开就是默认ubuntu了。

  2. Termianl的黑窗口大家相比已经看烦了,我们可以在schemes字段内更换Terminal的界面颜色配置

    给大家推荐一个网站,进行界面颜色主题的配置:>_TerminalSplash - Windows Terminal Themes

    defaults字段中可以配置Termial的背景图及透明度。如下:

  3. 可以在 Windows 终端中创建新的垂直或水平窗格。 垂直拆分将在焦点窗格的右侧打开一个新窗格,而水平拆分将在焦点窗格下方打开一个新窗格。 若要创建默认配置文件的新垂直窗格,可以键入 alt+shift++。 若要创建默认配置文件的新水平窗格,可以键入 alt+shift+-。注意这里新建的窗口都是一个命令集的窗口,如果想要创建不同的命令集还有上述效果,可以按住alt+鼠标点击窗口上方向下的箭头选择需要的命令集。如下:

  4. 最后注意一点,WSL2将你本地的c盘,d盘等window内置驱动盘都挂载在/mnt目录下,可以在ubuntu中直接操作,需要谨慎操作!!!

想看更详细的操作可以看下面的官方文档:Windows 终端安装 | Microsoft Docs


目前就介绍到这啦~


2021.2.14日补更~

WSL2下安装Docker

安装docker,以下方式二选一

  1. 原生linux安装docker方式

    因为wsl2已经完整使用了linux内核了,此种方式和先前在linux虚拟机安装docker类似,这里不加赘述。

  2. 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

说明

  1. WSL2下原生linux安装docker方式和完全linux虚拟机安装docker类似,区别在于WSL2下的linux不支持systemd。
  2. 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服务端进程通信。
  3. 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中完成开发,测试,部署的情况啦~


经过几天,查了一些资料,算是把这一套配置完成啦~后续再多多熟悉熟悉操作

posted @ 2021-02-13 22:28  无_忧  阅读(4482)  评论(0编辑  收藏  举报