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中完成開發,測試,部署的情況啦~


經過幾天,查了一些資料,算是把這一套配置完成啦~后續再多多熟悉熟悉操作


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM