
WSL Linux 子系統體驗原生 Docker,真香!
Windows 的 linux 子系統出來挺長時間了,你體驗過了嗎?
今天就帶你折騰一下吧,
畢竟想甩掉超占用硬體資源的大塊頭VM,比如VMware本文獻給愛折騰的你,折騰吧,後浪!
簡單說下這篇文章的重點:
- 安裝 WSL 的全過程
- 選擇性更新到 WSL 2 的全過程
- WSL 2 中體驗原生 Docker
啥是 WSL ?
WSL 是 Windows Subsystem for Linux 的縮寫,意思是 linux 版的 window 子系統。
引用自:微軟官網 https:// docs.microsoft.com/zh-c n/windows/wsl/about
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.
You can:
- 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 的好處是:
- 與在虛拟機下使用 Linux 相比,WSL 占用資源更少,更加流暢;
- WSL 可以對 Windows 檔案系統下的檔案直接進行讀寫,檔案傳輸更友善;
- 剪貼闆互通,可以直接在 Windows 下其它地方複制文本内容,粘貼到 WSL;
備注:其實我挺喜歡虛拟機的,畢竟是模拟了硬體,比較成熟,穩定。
開啟WSL支援
使用管理者權限的 Shell 才能安裝 WSL。
按 Win+X, 找到 Windows PowerShell (管理者),并複制執行指令。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
以上指令會激活 WSL 服務,然後需要重新開機系統
重新開機之後,Win + R,輸入 appwiz.cpl,左上角找到“啟動或關閉 Windows 功能”,會看到這個選項處于選中狀态。
其實吧,上面的指令就相當于手動去勾選這個功能。
直接指令執行效率可能更高些。
安裝 WSL 發行版
在 Windows 應用商店搜尋
ubuntu
,選擇自己喜歡的版本,安裝即可。
這裡我選擇的是
Ubuntu 20.04 LTS
,之後的所有内容也是基于 WSL Ubuntu 編寫。
下載下傳,安裝之後,第一次打開會初始化一會
然後設定個使用者名,密碼
接下來我們讓它更好用吧!
apt 換源
Debian / Ubuntu 的官方源在國内通路很慢,咱們更換為清華大學 TUNA 的軟體源鏡像PS:也可以用阿裡雲的鏡像,我體驗了沒那麼快(可能我姿勢不對),就不推薦了。
- 執行下面指令,備份 apt 安裝源:
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
- vim 編輯 sources.list :
$ sudo vim /etc/apt/sources.list
- 将 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
# 更新内容稍多,差不多幾分鐘,玩會手機吧。。。
配置SSH伺服器
咱們用慣了 類似 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 安裝的全部内容。
客官要體驗下 WSL2 嗎?
去年Build大會,WSL2 正式推出。 WSL2 附帶了一個真實的 Linux 4.19 核心,能夠帶來完整的系統調用相容性,并且能夠直接借助自動更新進行更新維護,無需更新整個Windows Linux的子系統。 同時,WSL2将比第一代的WSL1版本運作速度更快,提升了檔案系統的I/O性能和與Linux的相容性,且可本機直接運作 Docker 容器等(
這點我喜歡,嘿嘿
)。
那麼咱們來檢視一下我們上面安裝的 WSL 版本,
執行指令
wsl -l -v
,如果是這個結果,那麼恭喜你呀,WSL 1!
什麼?我的結果不是這樣???怎麼我執行指令控制台提示什麼
無效的指令選項???? 類似下面這樣的結果,沒事,我知道你會這樣,畢竟我是一步步爬着過來的,跟我一起繼續往下看。
那麼,咱們接下來說,
WSL2 使用是有門檻的。
你的系統,需要是滿足版本的
内部版本,強調一下内部版本,其實就是預覽(不穩定)版本。
- 一個是你的 windows 版本能不能跟的上
- 另一個你能不能承擔更新預覽版本帶來的風險?
如果滿足不了,就折騰 WSL 1 也挺好,最起碼體驗一把 windows 的進步。
先更新到内部預覽版本
步驟就不寫了 百度找一篇給你【Windows】WIN10如何擷取内部預覽版本注意:
不是你填個資訊申請一下立馬就可以用到内部預覽版了,要等 windows 推送給你,我大概等了三四天,發現有更新了,然後更新後再執行
wsl -l -v
,就正常了。
更新後,主界面,右下角,會有一些内部預覽版的辨別。。。
準備好了嗎?下面咱們開始更新到 WSL2 吧,跟我一起不停的重新開機電腦。。。
更新到 WSL 2
啟用“虛拟機平台”可選元件
安裝 WSL 2 之前,必須啟用“虛拟機平台”可選功能。
以管理者身份打開 PowerShell 并運作:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
計算機,以完成 WSL 安裝并更新到 WSL 2。
将 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 裡了!
在WSL2子系統Ubuntu中安裝Docker-CE
其實我更新WSL 2 的目的,是想體驗原版的 Docker 的,哈哈,來吧,既然都跟到這裡了,就開始吧!
安裝 Docker-CE
$ curl -skSL https://mirror.azure.cn/repo/install-docker-ce.sh | sh -s -- --mirror AzureChinaCloud
http:// mirror.azure.cn/help/do cker-engine.html
啟動Docker,檢視 Docker 版本
$ sudo service docker start
$ sudo docker version
跑個應用?
你說你裝好了,倒是跑個應用看看呀?
好吧,
像 Docker 官網的安裝步驟一樣,也會有這麼一步,
通過運作 hello-world 映像來驗證 Docker Engine 是否已正确安裝。$ sudo docker run hello-world
感興趣可以跟下來實操哦,畢竟我是一點點坑爬上來的才有這篇文章,為了複原真實步驟,裝了兩次 WSL。
隻點贊或收藏等于學會?不存在的,實操一下吧!