本文內容:
瞭解WSL和WSL2;
案例:在Windows 10 上開啓WSL2並安裝Ubuntu;
案例:體驗在WSL2中的Ubuntu 安裝Docker 並運行 nginx;
視頻講解:
您可在作者博客觀看視頻:https://www.51azure.cloud/post/2020/2/7/windows-10wsl2-linux-ubuntu-docker
圖文講解:
什麼是WSL?
Windows Subsystem for Linux,適用於 Linux 的 Windows 子系統可讓開發人員按原樣運行 GNU/Linux 環境 - 包括大多數命令行工具、實用工具和應用程序 - 且不會產生虛擬機開銷。
在WSL中,你可以:
在 Microsoft Store 中選擇你喜歡的Linux (Ubuntu/ Debian/ SUSE 等等)。
運行常用的軟件/Bash shell腳本/docker 等。包括但不限於:
工具:vim、emacs、tmux
語言:Javascript/node.js、Ruby、Python、C/C++、 C# 和 F#、Rust、Go 等等
服務:sshd、MySQL、Apache、lighttpd
在 Windows 上調用 GNU/Linux 應用程序。
什麼是WSL2?
WSL 2 是 WSL 中體系結構的新版本,它更改 Linux 發行版與 Windows 交互的方式。
WSL 2 的主要目標是提高文件系統性能並增加系統調用的完全兼容性。
每個 Linux 發行版都可以作爲 WSL 1 或 WSL 2 發行版運行,並可隨時進行切換。
WSL 2 是底層體系結構的主要功能,它使用虛擬化技術和 Linux 內核來實現其新功能。
WSL2 和WSL 在用戶層面的感知?
將 Linux 應用需要訪問的文件放在 Linux 根文件系統中可以提高文件訪問速度
在 WSL 2 預覽版的初始版本中,你需要使用 IP 地址而不是 localhost 來訪問網絡應用程序
案例:
案例:在Windows 10 上開啓WSL2並安裝Ubuntu;
WSL 2 僅適用於 Windows 10 版本18917或更高版本
管理員權限在power shell中執行如下命令:
1. 執行Power Shll命令或通過添加刪除windows組件開啓WSL
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
或者:
使用添加刪除windows組件功能:
安裝完成後,此過程可能要求重啓電腦。
2. 在windows app 商店 安裝Ubuntu 18.04
安裝完成第一啓動提示創建登錄用戶名和密碼:
3. 切換到WSL2
在命令提示符中輸入 wsl -l, 此處-l 是”list“的簡稱,不要輸入成其他字符:
可以查看當前已經安裝的linux 子系統
輸入 wsl --set-version Ubuntu-18.04 2 可以切換到WSL2, 注意,其中的 Ubuntu-18.04 爲你需要切換版本的Linux子系統。
wsl --set-version Ubuntu-18.04 2
可以通過如下命令查看當前的版本:
wsl -l -v
可以使用如下命令在以後安裝 Linux 的時候默認啓用 WSL2:
wsl --set-default-version 2
4. 使用WSL2中的Linux Ubuntu18.014
之後,有兩種啓動Ubuntu的方式:
1.可以通過開始菜單 像運行本地程序一樣運行Ubuntu ,直接運行開始菜單裏的 Ubuntu 18.04 LTS即可。
2. 在命令提示符中 輸入 WSL
在本例中,我們使用了Windows Terminal(一款支持 Power Shell, Azure CLI, CMD 的多頁面 終端工具, 可在商店中下載)
在Linux shell中,我們可以直接嗲用windows 系統的組件,比如輸入 explorer.exe, 會打開windows 資源管理器:
也可以執行Linux 命令,比如ps:
5. 在WSL2子系統Ubuntu中安裝Docker-CE
本例中,我們使用mirror.azure.cn提供的源安裝docker-ce, 當然您也可以參照docker 官網進行安裝。
點擊幫助圖標,使用頁面的腳本進行安裝:
安裝完成,啓動docker 並查看版本:
sudo service docker start sudo docker version
5. 在WSL2子系統Ubuntu中使用Docker 拉取映像並運行Nginx
執行如下命令:
sudo docker pull nginx
在 wsl2中的Ubuntu中啓動容器:
執行如下代碼:
sudo docker run --name nginx -p 9696:80 -d nginx
在本地Windows中檢查運行狀況:
本文參考官方文檔:https://docs.microsoft.com/en-us/windows/wsl/wsl2-install