WSL 初體驗html
WSL Linux 子系統體驗原生 Docker,真香!node
Windows 的 linux 子系統出來挺長時間了,你體驗過了嗎?python
今天就帶你折騰一下吧,畢竟想甩掉超佔用硬件資源的大塊頭VM,好比VMwarelinux
本文獻給愛折騰的你,折騰吧,後浪!nginx
簡單說下這篇文章的重點:web
WSL 是 Windows Subsystem for Linux 的縮寫,意思是 linux 版的 window 子系統。docker
引用自:微軟官網 https://docs.microsoft.com/zh...shell
The Windows Subsystem for Linux lets developers run a GNU/Linux environment -- including most command-line tools, utilities, and applications -- directly on Windows, unmodified, without the overhead of a virtual machine.ubuntu
You can:vim
- Choose your favorite GNU/Linux distributions from the Microsoft Store.
- Run common command-line tools such as
grep
,sed
,awk
, or other ELF-64 binaries.Run Bash shell scripts and GNU/Linux command-line applications including:
- Tools: vim, emacs, tmux Languages: NodeJS, Javascript, Python, Ruby, C/C++, C# & F#, Rust, Go, etc. Services: SSHD, MySQL, Apache, lighttpd, MongoDB, PostgreSQL.
- Install additional software using own GNU/Linux distribution package manager.
- Invoke Windows applications using a Unix-like command-line shell.
- Invoke GNU/Linux applications on Windows
簡單的說就是,Linux 的 Windows 子系統讓開發人員無需虛擬機
就能夠直接在 Windows 上運行 Linux 環境,包括大多數命令行工具、程序和應用。
使用 WSL 的好處是:
備註:其實我挺喜歡虛擬機的,畢竟是模擬了硬件,比較成熟,穩定。
使用管理員權限的 Shell 才能安裝 WSL。
按 Win+X, 找到 Windows PowerShell (管理員),並複製執行命令。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
以上命令會激活 WSL 服務,而後須要重啓系統
重啓以後,Win + R,輸入 appwiz.cpl,左上角找到「啓動或關閉 Windows 功能」,會看到這個選項處於選中狀態。
其實吧,上面的命令就至關於手動去勾選這個功能。直接命令執行效率可能更高些。
在 Windows 應用商店搜索 ubuntu
,選擇本身喜歡的版本,安裝便可。
這裏我選擇的是 Ubuntu 20.04 LTS
,以後的全部內容也是基於 WSL Ubuntu 編寫。
下載,安裝以後,第一次打開會初始化一會
而後設置個用戶名,密碼
到這裏,其實我們的 WSL 就安裝好了。
接下來咱們讓它更好用吧!
Debian / Ubuntu 的官方源在國內訪問很慢,我們更換爲清華大學 TUNA 的軟件源鏡像
PS:也能夠用阿里雲的鏡像,我體驗了沒那麼快(可能我姿式不對),就不推薦了。
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
$ sudo vim /etc/apt/sources.list
注意:這裏是Ubuntu 20.04 LTS
的,
若是是其餘版本的ubuntu,自行訪問[ 清華大學開源軟件鏡像站]去查找對應版本的鏡像配置
# 默認註釋了源碼鏡像以提升 apt update 速度,若有須要可自行取消註釋 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse # 預發佈軟件源,不建議啓用 # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
$ sudo apt-get update
$ sudo apt-get upgrade # 更新內容稍多,差很少幾分鐘,玩會手機吧。。。
我們用慣了 相似 xshell ,SecureCRT 這種 SSH 工具鏈接 Linux,因此順便把 SSH 功能打通吧,用的順手,畢竟 PowerShell 用的不是太方便!
WSL 上的 SSH 服務器沒有自動配置,須要手動從新安裝,首先能夠運行如下命令來檢查
$ sudo service ssh stop $ sudo /usr/sbin/sshd -d
若是輸出信息包括以上信息,即找不到 key,從新安裝 openssh-server 就能夠解決問題
$ sudo apt purge openssh-server $ sudo apt install openssh-server
而後須要配置 /etc/ssh/sshd_config,用 sudo 權限運行 vim 修改以下三個關鍵字
記得刪除 #
Port 22 # 這兩行容許了 root 帳戶和密碼登陸 PermitRootLogin yes PasswordAuthentication yes
而後記得重啓 ssh 服務
$ sudo service ssh restart $ sudo service ssh status
若是須要用密碼登陸 root 帳戶,還須要設置密碼
$ sudo passwd root
而後就可使用 SSH 工具進行鏈接啦,本地直接 localhost 便可
OK,到此,我們的 WSL 已經配置完畢。
盡情體驗,安裝 Nginx,Redis,MySQL .... 折騰吧後浪!
這就完了???
對,差很少就完了。
以上內容就是 WSL 安裝的所有內容。
去年Build大會,WSL2 正式推出。
WSL2 附帶了一個真實的 Linux 4.19 內核,可以帶來完整的系統調用兼容性,而且可以直接藉助自動更新進行升級維護,無需更新整個Windows Linux的子系統。
同時,WSL2將比第一代的WSL1版本運行速度更快,提高了文件系統的I/O性能和與Linux的兼容性,且可本機直接運行 Docker 容器等(這點我喜歡,嘿嘿
)。
那麼我們來查看一下咱們上面安裝的 WSL 版本,
執行命令 wsl -l -v
,若是是這個結果,那麼恭喜你呀,WSL 1!
什麼?個人結果不是這樣???怎麼我執行命令控制檯提示什麼無效的命令選項????
相似下面這樣的結果,沒事,我知道你會這樣,畢竟我是一步步爬着過來的,跟我一塊兒繼續往下看。
那麼,我們接下來講,WSL2 使用是有門檻的。
你的系統,須要是知足版本的內部版本,強調一下內部版本,其實就是預覽(不穩定)版本。
因此,下面要不要升級到 WSL2,有兩方面考慮,
若是知足不了,就折騰 WSL 1 也挺好,最起碼體驗一把 windows 的進步。
步驟就不寫了
百度找一篇給你 【Windows】WIN10如何獲取內部預覽版本
注意:不是你填個信息申請一下立馬就能夠用到內部預覽版了,要等 windows 推送給你,我大概等了三四天,發現有更新了,而後更新後再執行 wsl -l -v
,就正常了。
更新後,主界面,右下角,會有一些內部預覽版的標識。。。
準備好了嗎?下面我們開始更新到 WSL2 吧,跟我一塊兒不停的重啓電腦。。。
安裝 WSL 2 以前,必須啓用「虛擬機平臺」可選功能。
以管理員身份打開 PowerShell 並運行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
從新啓動計算機,以完成 WSL 安裝並更新到 WSL 2。
在 Powershell 中運行如下命令,將 WSL 2 設置爲默認版本:
# 1.WSL 提供了版本轉換工具,將 wsl1 轉爲 wsl2, # 注意轉換時間可能較長,耐心等待,若是時間過久沒反應,時不時按下 Enter 看看有沒有更新 wsl --set-version Ubuntu-20.04 2 # 2.將 WSL2 設置爲默認版本 wsl --set-default-version 2
如今咱們運行wsl -l -v
,看到 VERSION 已是 2 了!
再次恭喜,咱們已經成功將 WSL 1 升級爲 WSL 2 了!!!
一個真正的 Linux 內核的系統已經在你的 Windows 裏了!
其實我升級WSL 2 的目的,是想體驗原版的 Docker 的,哈哈,來吧,既然都跟到這裏了,就開始吧!
$ curl -skSL https://mirror.azure.cn/repo/install-docker-ce.sh | sh -s -- --mirror AzureChinaCloud
http://mirror.azure.cn/help/d...
$ sudo service docker start $ sudo docker version
你說你裝好了,卻是跑個應用看看呀?
好吧,
像 Docker 官網的安裝步驟同樣,也會有這麼一步,經過運行 hello-world 映像來驗證 Docker Engine 是否已正確安裝。
$ sudo docker run hello-world
我成功了,你呢?
感興趣能夠跟下來實操哦,畢竟我是一點點坑爬上來的纔有這篇文章,爲了復原真實步驟,裝了兩次 WSL。只點贊或收藏等於學會?不存在的,實操一下吧!