其實這裡只有兩個大選擇:WSL 1和VM。

WSL 1用的是Windows內核模擬的各種系統介面。雖然可以運行大部分Linux應用,但還是有不少依賴於內核的應用是無法正常運行的——例如Docker。另外WSL 1和Windows共用文件系統、網路,有些時候會比較頭疼。

WSL 2/Docker本質上都是Hyper-V。WSL 2是一個輕量級的Hyper-V VM;Docker for Windows如果要跑Linux鏡像,會安裝運行一臺運行Linux的Hyper-V虛擬機,用Hyper-V的管理工具是可以看到的。

所以除非你就運行某幾個特定的軟體並且在WSL 1上沒有問題選擇了用WSL 1,否則WSL 2、Docker、VM的選擇說白了就是你選擇用什麼VM軟體:

  • 懶得對VM進行管理的,默認設置就OK的, WSL2,輕量啟動快,安裝方便,和Windows結合緊密;
  • 本來就用Hyper-V,又需要用Docker,還懶得自己裝一個Linux並且配置Docker運行環境,Docker;
  • 不嫌安裝vm軟體、管理vm的虛擬硬體/網路、在vm上安裝一個Linux並且配置環境麻煩,那就用你最喜歡的vm軟體,裝一個Linux VM,這是最靈活的。畢竟Hyper-V會和很多VM軟體/安卓模擬器衝突,另外也可以訪問USB設備,大部分VM軟體的圖形界面性能比Hyper-V好。

PS:技術的東西真的是少盯緊一點就落伍……win版的Docker Desktop從18.02開始,使用Windows容器模式,打開體驗功能版本,可以直接使用內置的Linux內核跑Linux容器而無需在Hyper-V裡面額外安裝運行一臺Linux VM。

具體官方教程見:

Windows and Linux Containers on Windows 10?

docs.microsoft.com圖標

效果截圖:

以下打臉內容保留,以作警醒。臉好疼……


掛個人,睜眼說瞎話也不怕打臉,真當我找不到第二臺電腦麼?

你是怎麼測試的?如果切換到Windows容器模式,關閉這個VM,你運行個Linux容器給我看?


根據多年實際使用經驗,前前後後用過 Virtualbox 和 VMware,都還不錯,部分外設可能有兼容性問題,滿足日常使用,甚至各種開發都問題不大。

就成熟度來看,建議用 Virtualbox 或 VMware,WSL 和 Docker 在 Windows 下的原生支持都不久。WSL 不太熟,Docker 的話只能在某些硬體和某些版本的 Windows 下才原生支持,限制比較多。

我現在也是在 Vmware 下裝 Ubuntu,在裡頭再用 Docker。


開個fast ring然後用wsl2吧,同時滿足你對wsl、docker、vm的需求。


有人說要打我臉,來吧

@木頭龍


看完了所有的回答,我選擇在Linux下虛擬windows,官方都有鏡像下載,沒有任何盜版風險,隨時可用。

https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/


推薦閱讀:
相關文章