注意:如沒有科學上網請勿嘗試,無法判斷是否會因網絡錯誤導致的安裝失敗!!!
WSL2(Windows Subsystem for Linux 2)
功能簡介:
WSL2 是微軟提供的在 Windows 上運行完整 Linux 內核的子系統,支持原生 Linux 二進制程序,無需虛擬機即可實現 Linux 環境。它與 Windows 文件系統緊密集成,提供高速的文件訪問和網絡性能。
應用場景:
- 開發者在 Windows 機器上使用 Linux 工具鏈(如 Bash、Git、Python、Node.js 等)。
- 運行 Linux 服務器軟件或測試環境。
- 學習和實驗 Linux 系統與軟件。
- 在 Windows 與 Linux 環境間無縫切換,簡化跨平臺開發流程。
Docker
功能簡介:
Docker 是一個容器化平臺,可以將應用及其依賴打包到輕量級、可移植的容器中,實現“一次構建,處處運行”。它提供快速部署、一致環境和資源隔離。
應用場景:
- 開發和測試環境標準化,避免“環境不一致”問題。
- 微服務架構中,各服務獨立部署和管理。
- 持續集成/持續交付(CI/CD)流水線自動化。
- 方便應用遷移和擴展,尤其在云計算中。
- 運行數據庫、中間件等依賴環境,簡化配置和維護。
1. 系統要求與準備
- Windows 10 專業版,版本號至少 19041 以上,建議更新至最新補丁。
- 需要開啟虛擬化支持(BIOS 中開啟 VT-x/AMD-V)。
- 需要安裝并啟用 Windows 子系統 Linux 和虛擬機平臺功能,具體如下圖選擇后會確定安裝。
2. 安裝 WSL 功能
打開 PowerShell(管理員),執行后重啟電腦:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
3. 安裝或更新 WSL2 內核組件
下載并安裝最新的 WSL2 Linux 內核更新包:
WSL2安裝包鏈接
4. 設置 WSL 版本為 2(默認)
wsl --set-default-version 2
wsl -version
5. 安裝 Ubuntu 發行版
Ubuntu 壓縮包鏈接
?進入該網址下載壓縮包,注意選擇AMD或ARM要根據你的電腦硬件型號決定,可以在任務管理器的性能里看到。
常見型號錯誤:<3>WSL (26 - Relay) ERROR: CreateProcessCommon:725: execvpe(/bin/bash) failed: Exec format error
手動導入剛才下好的安裝包到自定義目錄(例如 D 盤),我這里為了方便重命名為 ubuntu.tar.gz :
wsl --import Ubuntu D:\WSL\Ubuntu C:\path\to\ubuntu.tar.gz --version 2
6.運行 WSL啟動Ubuntu
wsl -d Ubuntu
更新軟件:
apt update && apt upgrade -y
添加用戶,減少使用root用戶:
adduser user_name#提示你輸入兩次密碼(不可見,直接輸入即可)
提升權限:
usermod -aG sudo user_name
退出系統:
exit
重新進入:
wsl -d Ubuntu -u user_name
查看目錄:
passlink@DESKTOP-VI6RFKU:/mnt/d/WSL/Ubuntu$ cd /
passlink@DESKTOP-VI6RFKU:/$ ls
bin dev home lib lib64 lost+found mnt proc run snap sys usr
boot etc init lib32 libx32 media opt root sbin srv tmp var
修改默認用戶:
nano /etc/wsl.conf
加入:
[user]
default=user_name
Ctrl + O → Enter → Ctrl + X :保存,確認,退出編輯
重啟:
wsl --shutdown
wsl
7. 常見錯誤排查
- Exec format error:可能導入的鏡像架構和系統不匹配(amd64 vs arm64)
- 無法掛載磁盤:檢查
/etc/fstab
配置,禁用掛載出錯項或修正路徑 - WSL2 內核組件未安裝或版本過低,重新安裝更新包
- WSL 版本確認:
wsl --list --verbose
在 Ubuntu 上安裝Docker
1. 配置 Docker 官方倉庫 GPG Key 和源
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
2.更新
sudo apt update
3.安裝Docker
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
4.查看
passlink@DESKTOP-VI6RFKU:/mnt/d/WSL/Ubuntu$ sudo docker info
Client: Docker Engine - CommunityVersion: 28.2.2oad.docker.com/linux/ubuntu jammy/stable amd64 docker-buildx-plugin amd64 0.24.0-1~ubuntu.22.04~jammy Context: defaultDebug Mode: falsenload.docker.com/linux/ubuntu jammy/stable amd64 docker-ce-rootless-extras amd64 5:28.2.2-1~ubuntu.22. Plugins:[6480 kB]buildx: Docker Buildx (Docker Inc.)nux/ubuntu jammy/stable amd64 docker-compose-plugin amd64 2.36.2-1~ubuntu.22.04~jam Version: v0.24.0Path: /usr/libexec/docker/cli-plugins/docker-buildx amd64 containerd.io amd64 1.7.27-1 [30.5 MB]compose: Docker Compose (Docker Inc.)Version: v2.36.2Path: /usr/libexec/docker/cli-plugins/docker-composeServer:Containers: 0Running: 0Paused: 0Stopped: 0Images: 0Server Version: 28.2.2Storage Driver: overlay2Backing Filesystem: extfsSupports d_type: trueUsing metacopy: falseNative Overlay Diff: trueuserxattr: falseLogging Driver: json-fileCgroup Driver: systemdCgroup Version: 2Plugins:Volume: localNetwork: bridge host ipvlan macvlan null overlayLog: awslogs fluentd gcplogs gelf journald json-file local splunk syslogCDI spec directories:/etc/cdi/var/run/cdiSwarm: inactiveRuntimes: io.containerd.runc.v2 runcDefault Runtime: runcInit Binary: docker-initcontainerd version: 05044ec0a9a75232cad458027ca83437aae3f4darunc version: v1.2.5-0-g59923efinit version: de40ad0Security Options:seccompProfile: builtincgroupnsKernel Version: 6.6.87.1-microsoft-standard-WSL2Operating System: Ubuntu 22.04.5 LTSOSType: linuxArchitecture: x86_64CPUs: 4Total Memory: 3.3GiBName: DESKTOP-VI6RFKUID: 8607a6f8-d99e-409d-9306-209ecc78eabdDocker Root Dir: /var/lib/dockerDebug Mode: falseExperimental: falseInsecure Registries:::1/128127.0.0.0/8Live Restore Enabled: false