必須啟用“適用于 Linux 的 Windows 子系統(tǒng)”可選功能并重啟,然后才能在 Windows 上運(yùn)行 Linux 發(fā)行版。
創(chuàng)新互聯(lián)是一家專(zhuān)注于做網(wǎng)站、成都網(wǎng)站制作與策劃設(shè)計(jì),巴彥網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:巴彥等地區(qū)。巴彥做網(wǎng)站價(jià)格咨詢(xún):18982081108
以管理員運(yùn)行Powershell(開(kāi)啟WSL,如已開(kāi)啟可跳過(guò))
WSL 1 和 WSL 2 之間的主要區(qū)別在于,在托管 VM 內(nèi)使用實(shí)際的 Linux 內(nèi)核、支持完整的系統(tǒng)調(diào)用兼容性以及跨 Linux 和 Windows 操作系統(tǒng)的性能。
WSL2相比WSL1來(lái)說(shuō)可以完美支持Docker。與WSL1的模擬Linux API不同的是,WSL2采用在Hyper-V虛擬機(jī)中運(yùn)行的方案。可以說(shuō)WSL2和原汁原味的Linux已經(jīng)十分接近
不支持Docker的守護(hù)進(jìn)程,但您可以使用 Docker CLI 連接到通過(guò) Docker for Windows 或您創(chuàng)建的任何其他VM 運(yùn)行的遠(yuǎn)程Docker守護(hù)進(jìn)程
不能完全兼容systemctl, systemd等等,IO速度相對(duì)原生Linux也是大打折扣,在編譯和解壓方面可以很深體會(huì)到。畢竟不是真正的Linux,而是掛在Windows NT內(nèi)核之上的仿Linux 系統(tǒng)
由于WSL 還不是原生的Linux,所以需要借助 Docker for Windows 來(lái)實(shí)現(xiàn)Docker(Docker for Windows 是基于Hyper-V 技術(shù))
另外一種方式是,在WSL1中安裝docker 客戶(hù)端,連接 docker server, 來(lái)解決在WSL1上使用docker 的問(wèn)題。(PS: Win10 的Linux 子系統(tǒng)是裝不了 docker (服務(wù)端)的,但是可以安裝客戶(hù)端)
參考
WSL2 是第二代 WSL,包含在2020年5月正式發(fā)布 Windows 10 v2004 版中。相比第一代,新的 WSL2 重新設(shè)計(jì)了架構(gòu),使用真正的 Linux 內(nèi)核,幾乎具有 Linux 的所有完整功能。啟用WSL2的 Linux 系統(tǒng)啟動(dòng)時(shí)間非??欤瑑?nèi)存占用很少,并且,WSL 2 還可以直接原生運(yùn)行 Docker,VS Code 編輯器還有 Remote-WSL 插件,相對(duì)于完整的 linux 虛擬機(jī)只是不支持 systemctl、systemd,不能直接運(yùn)行圖形桌面。Windows 也越來(lái)越向虛擬平臺(tái)靠攏,Windows NT 內(nèi)核和 Linux 內(nèi)核都是運(yùn)行在虛擬平臺(tái)之上的,是平級(jí)的
如果發(fā)現(xiàn)VERSION為1,說(shuō)明Ubuntu運(yùn)行在WSL1下,可以升級(jí)到 WSL2。同樣,WSL2也可以降級(jí)到WSL1。
wsl -l -v #查看已安裝Linux版本和名稱(chēng),完整命令格式:wsl --list --verbose
具體步驟參考 :
安裝 WSL 2 之前,必須啟用“虛擬機(jī)平臺(tái)”可選功能
wsl --set-version Ubuntu 2 #升級(jí)到WSL2,其中 Ubuntu 是已經(jīng)安裝的Linux名稱(chēng),命令格式:wsl --set-version Distro Version
啟用WSL后,通過(guò) \wsl$ 可以訪問(wèn)WSL文件
最初的WSL是在Windows之上模擬Linux內(nèi)核,但是Windows和Linux之間存在如此基本的差異,以至于某些事情不可能以與本機(jī)Linux相同的行為實(shí)現(xiàn),這意味著不可能直接在 WSL中運(yùn)行 Docker Engine 和Kubernetes
在WSL1中,Docker Desktop通過(guò)Hyper-V虛擬機(jī)去運(yùn)行docker環(huán)境的
升級(jí)到WSL2 之后, Docker Desktop 可以直接用 WSL2,直接運(yùn)行在Linux 內(nèi)核上了
通過(guò)如下設(shè)置,Docker Desktop就和WSL2分發(fā)版本進(jìn)行了集成,無(wú)需在WSL中安裝docker; 當(dāng)然,也可以選擇不與Docker Desktop集成,直接在WSL 中運(yùn)行docker 容器。
啟用WSL后,docker運(yùn)行數(shù)據(jù)都在WSL發(fā)行版中,文件位置都只能由WSL管理
安裝docker后,docker會(huì)自動(dòng)創(chuàng)建2個(gè)發(fā)行版:
WSL發(fā)行版默認(rèn)都是安裝在C盤(pán),在%LOCALAPPDATA%/Docker/wsl目錄
docker的運(yùn)行數(shù)據(jù)、鏡像文件都存在%LOCALAPPDATA%/Docker/wsl/data/ext4.vhdx中
通過(guò) WSL 2 集成,您仍然可以體驗(yàn)到與 Windows 的無(wú)縫集成,但在 WSL 中運(yùn)行的 Linux 程序也可以執(zhí)行相同的操作。這對(duì)于從事面向 Linux 環(huán)境的項(xiàng)目或?yàn)?Linux 量身定制的構(gòu)建過(guò)程的開(kāi)發(fā)人員產(chǎn)生了巨大影響。不再需要維護(hù) Linux 和 Windows 構(gòu)建腳本!例如,Docker 的開(kāi)發(fā)人員現(xiàn)在可以在 Windows 上的 Linux Docker 守護(hù)程序上工作,使用與 Linux 計(jì)算機(jī)上的開(kāi)發(fā)人員相同的工具和腳本集:
注:WSL2 Docker最爽的地方是和宿主機(jī)Win10共享network,我們?cè)谒拗鳈C(jī)Win10使用localhost加端口號(hào)就可以訪問(wèn)Docker中對(duì)應(yīng)container中的服務(wù),十分方便
wsl #啟動(dòng)
wsl --shutdown #關(guān)閉所有正在運(yùn)行的 Linux 和 WSL 2
啟動(dòng) WSL2 之后,會(huì)在任務(wù)管理器中發(fā)現(xiàn)多了一個(gè) 虛擬機(jī)工作線程
訪問(wèn)wsl 文件
卸載發(fā)行版
有時(shí)候某個(gè)Linux發(fā)行版不再使用,或者是環(huán)境被搞壞需要重裝,這時(shí)候我們可以卸載掉這個(gè)Linux發(fā)行版。方法如下。
在【設(shè)置 - 更新與安全-開(kāi)發(fā)者選項(xiàng)】中開(kāi)啟【開(kāi)發(fā)人員模式】
在【控制面板-程序-程序和功能 - 啟用或關(guān)閉 Windows 功能】中勾選【適用于 Linux 的 Windows 子系統(tǒng)】
在應(yīng)用商店搜索ubuntu選擇適合自己版本的ubuntu安裝即可
1、首先在win10系統(tǒng)任務(wù)欄中點(diǎn)擊右鍵再點(diǎn)擊屬性
2、點(diǎn)擊開(kāi)始菜單,再把"使用開(kāi)始菜單而非開(kāi)始屏幕"勾上再點(diǎn)擊確定;
在更改開(kāi)始屏幕設(shè)備,注銷(xiāo)并更改設(shè)置。記得要保存好電腦內(nèi)的資料哦!馬上會(huì)執(zhí)行注銷(xiāo)的動(dòng)作;
方法/步驟
1
1、打開(kāi)控制面板— 程序與功能— 啟用或關(guān)閉 Windows 功能:
2
2、勾選適用于 Linux 的 Windows 子系統(tǒng)(Beta)并點(diǎn)擊確定;
3
3、進(jìn)入 Windows 10 設(shè)置— 更新與安全— 針對(duì)開(kāi)發(fā)人員— 勾選開(kāi)發(fā)人員模式并重啟設(shè)備;
END
方法/步驟2
4、打開(kāi)管理員模式的命令提示符并輸入 bash 回車(chē),然后輸入 Y 下載 Ubuntu;
2
5、下載完成后按提示創(chuàng)建 UNIX 默認(rèn)用戶(hù)名并輸入密碼(輸入密碼是不顯示*的,輸入完成直接回車(chē)即可)
①C:\Users\xxx1\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\xxx2
說(shuō)明:xxx1表示windows系統(tǒng)的用戶(hù)名,xxx2表示子系統(tǒng)Ubuntu的用戶(hù)名。
①cd /mnt/c/Users/xxx1
說(shuō)明:xxx1表示windows系統(tǒng)的用戶(hù)名。
②訪問(wèn)win10中的g盤(pán)根目錄:
cd /mnt/g
Win10 與 子系統(tǒng) Ubuntu 之間互訪文件系統(tǒng)
近期將本地開(kāi)發(fā)環(huán)境配置到的wsl2子系統(tǒng)中,出現(xiàn)wsl之系統(tǒng)暫用宿主機(jī)內(nèi)存過(guò)多,導(dǎo)致數(shù)組機(jī)卡頓,通過(guò)在網(wǎng)上查閱資料獲得解決方案記錄下來(lái),以供它人參考
在當(dāng)前用戶(hù)目錄下新建.wslconfig文件,我的路徑是:C:Usersadmin.wslconfig
然后在文件中添加配置內(nèi)容:
然后在window 終端 輸入 wsl --shutdown 關(guān)閉wsl,然后重啟生效
processors 設(shè)置虛擬處理器數(shù)量
memory wsl 2占用系統(tǒng)內(nèi)存上線,可根據(jù)實(shí)際情況配置
localhostForwarding=true 設(shè)置在 Windows 中通過(guò) 127.0.0.1 或 localhost 訪問(wèn) WSL2 服務(wù)