WSL2 安装与Docker安装
注意:如没有科学上网请勿尝试,无法判断是否会因网络错误导致的安装失败!!!
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