windows10目前推出了WSL2,相對(duì)于WSL采用API轉(zhuǎn)換的方式, WSL2 則完全不同,win10 開始內(nèi)置了一個(gè)輕量級(jí)虛擬機(jī),經(jīng)過不斷的優(yōu)化,這個(gè)虛擬機(jī)實(shí)現(xiàn)了與 windows 的高度集成,實(shí)現(xiàn)了虛擬機(jī)的高性能運(yùn)行,WSL2 便是運(yùn)行在虛擬機(jī)上的一個(gè)完整的 linux 內(nèi)核。因此WSL2給了在windows更接近原生linux的體驗(yàn),同時(shí)wsl2 的開啟速度有了非常明顯的提升,幾乎不需要再等待。本文探討在win10專業(yè)版上利用WSL2安裝docker的2種方式。
要升級(jí) windows 系統(tǒng)到 win10 v2004 的內(nèi)部版本 19041 或更高版本
升級(jí) Windows 可以使用官方的更新助手,非常方便,地址:https://www.microsoft.com/zh-cn/software-download/windows10,在更新過程中,系統(tǒng)可能或多次重啟。
系統(tǒng)更新并重啟后,我們就可以開始 wsl 的升級(jí)了
首先,需要打開“系統(tǒng)虛擬機(jī)平臺(tái)”功能,在“控制面板\所有控制面板項(xiàng)\程序和功能”中選擇“啟用或者關(guān)閉Windows功能”,勾選對(duì)應(yīng)選項(xiàng)即可:
也可以通過在管理員權(quán)限下的 cmd 或 PowerShell 中執(zhí)行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
在 https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-kernel 頁面點(diǎn)擊下載 linux 內(nèi)核更新包,下載完點(diǎn)擊安裝
啟用'適用于 Linux 的 Windows 子系統(tǒng)'這個(gè)功能,然后才能在 Windows 上安裝 Linux 發(fā)行版,如果之前使用過舊的wsl,此功能應(yīng)該開啟過。以管理員身份打開 PowerShell 運(yùn)行如下所示的命令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
也可以在“控制面板\所有控制面板項(xiàng)\程序和功能”中選擇“啟用或者關(guān)閉Windows功能”,勾選對(duì)應(yīng)選項(xiàng)即可。
# wsl命令可以設(shè)置單獨(dú)某個(gè)具體wsl的linux版本為1版本但是2版本,wsl2速度較于舊版wsl快了很多,有了高鐵還蹬啥自行車。
wsl --set-default-version 2
查看是不是WSL2,
wsl -l -v
選擇實(shí)用比較多的ubuntu版本,其他版本未測試能否安裝成功docker。
安裝完成后,第一次打開 Ubuntu 的時(shí)候,將打開一個(gè)控制臺(tái)窗口,會(huì)等待幾分鐘來進(jìn)行配置,啟動(dòng)完成后為 Ubuntu 創(chuàng)建一個(gè)用戶和密碼(如果第一次啟動(dòng)ubuntu失敗,可以重啟windows10系統(tǒng)再次試下)。
使用 Windows Terminal 來操作 Ubuntu 系統(tǒng)了,在 Windows Terminal 中選擇 Ubuntu 發(fā)行版就可以跳轉(zhuǎn)到 Ubuntu 終端中,使用上面我們配置的用戶名和密碼登錄即可:
由于默認(rèn)情況下我們不知道 root 用戶的密碼,所以如果我們想要使用 root 用戶的話可以使用 passwd 命令為 root 用戶設(shè)置一個(gè)新的密碼,同時(shí)為了避免sudo切換root是需要輸入密碼,把自己配置的用戶名加到sudo免密中,命令如下:
# 替換leap為自己單獨(dú)配置的用戶名
sudo echo 'leap ALL=(ALL:ALL) NOPASSWD: ALL' >>/etc/sudoers
默認(rèn)的安裝源相對(duì)國內(nèi)很慢,我們更換源到阿里云,登錄到ubuntu到操作如下:
cp /etc/apt/sources.list /etc/apt/sources.list.bak
echo 'deb http://mirrors.aliyun.com/ubuntu/ focal main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal universe
deb http://mirrors.aliyun.com/ubuntu/ focal-updates universe
deb http://mirrors.aliyun.com/ubuntu/ focal multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal-security universe
deb http://mirrors.aliyun.com/ubuntu/ focal-security multiverse'>/etc/apt/sources.list
執(zhí)行更新:
apt update && apt upgrade -y
因?yàn)閣sl2已經(jīng)完整使用了linux內(nèi)核了,此種方式和先前在linux虛擬機(jī)安裝docker類似,步驟如下:
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
$ sudo service docker start
執(zhí)行腳本安裝過程中,腳本提示“建議使用Docker Desktop for windows”,20s內(nèi)按Ctrl+C會(huì)退出安裝,所以需要等待20s,另外此種方式需要訪問外網(wǎng)。
檢查docker安裝正常
# 檢查dockerd進(jìn)程啟動(dòng)
service docker status
ps aux|grep docker
# 檢查拉取鏡像等正常
docker pull busybox
docker images
注意:不同于完全linux虛擬機(jī)方式,WLS2下通過apt install docker-ce
命令安裝的docker無法啟動(dòng),因?yàn)閃SL2方式的ubuntu里面沒有systemd。上述官方get-docker.sh安裝的docker,dockerd進(jìn)程是用ubuntu傳統(tǒng)的init方式而非systemd啟動(dòng)的。
Docker 也專門開發(fā)了可以使用 WSL2
中的 Docker
守護(hù)進(jìn)程的桌面管理程序, 打開 Docker Desktop WSL2 backend 頁面,下載最新的 Docker Desktop for Windows 程序 ,建議下載stable版本。下載地址:https://www.docker.com/products/docker-desktop
啟動(dòng)Docker Desktop for Windows,點(diǎn)擊“設(shè)置”按鈕,啟用基于WSL2
的引擎復(fù)選框(Use the WSL 2 based engine)
這個(gè)時(shí)候在 WSL 里面執(zhí)行 docker 命令還是找不到的
df -Th
,會(huì)發(fā)現(xiàn)增加了一些新的與docker有關(guān)的掛載點(diǎn)。如果覺得有幫助,請(qǐng)關(guān)注一波 _,后續(xù)更新win10下安裝kubernetes教程
歡迎關(guān)注微信公眾號(hào)—【Linux運(yùn)維堂】,堅(jiān)持linux運(yùn)維精華分享,堅(jiān)持干貨(talk is cheap,show your code)。
聯(lián)系客服