Windows下想使用Linux環境,WSL、Docker、VM應該怎麼選擇?
其實這裡只有兩個大選擇: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
效果截圖: