Windows Subsystem for Linux(简称 WSL)是 Windows 10 中的一个功能,它允许用户在 Windows 系统上运行 Linux 系统,而无需使用虚拟机的方式。在 WSL 中安装 Ubuntu 和 Docker,可以在 Windows 系统上快速搭建 Linux 开发环境,并且方便地运行 Docker 容器。
本篇实现目标:
- 启用 WSL,安装 Ubuntu 系统
- 在 Ubuntu 系统中安装 Docker
步骤1 - 开启 WSL
快捷键 win
+ R
打开运行窗口,执行 OptionalFeatures
,进入 Windows 功能界面,勾选下面两项:
- Hyper-v
- 适用于 Linux 的 Windows 子系统
如图所示:
步骤2 - 安装 Ubuntu
打开 Windws 自带的 Microsoft Store 应用商店,搜索 ubuntu
,我这里选择的 Ubuntu 20.04.6 LTS
这个版本,直接安装即可,下载速度视自身网络环境而定,我大概花了5分钟左右。
安装完成后,直接在上面的安装界面或在开始菜单中找到 Ubuntu 20.04.6 LTS
进入 Ubuntu 子系统,首次启动会要求设置默认账号和密码。
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: ubuntu
New password: 设置密码
Retype new password: 确认密码
passwd: password updated successfully
步骤3 - 安装 Docker
网上大多文章使用的 windows 版 docker desktop 配置 wsl 安装的 Docker,我个人习惯在 linux 下操作Docker,并且觉得 windows 版的 Docker 有点臃肿,所以我选择直接安装在ubuntu系统中,不用的时候也方便卸载。
在子系统中安装 Docker 跟平常在服务器上安装没什么区别,这里我们使用一键安装脚本:
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
随后将当前用户添加到 Docker 用户组中:
$ sudo gpasswd -a $USER docker
$ newgrp docker
启动 Docker :
$ sudo service docker start
最后验证是否安装成功:
$ docker run hello-world
常见问题
WslRegisterDistribution 失败并出现错误 0x8007019e
未启用“适用于 Linux 的 Windows 子系统”可选组件:打开“控制面板”->“程序和功能”->“打开或关闭 Windows 功能”-> 选中“适用于 Linux 的 Windows 子系统”
安装失败,出现错误 0x80070003 或错误 0x80370102
- 请确保在计算机的 BIOS 内已启用虚拟化。 有关如何执行此操作的说明因计算机而异,并且很可能在 CPU 相关选项下。
- WSL2 要求 CPU 支持二级地址转换 (SLAT) 功能,后者已在 Intel Nehalem 处理器(Intel Core 第一代)和 AMD Opteron 中引入。 即使成功安装了虚拟机平台,旧版 CPU(例如 Intel Core 2 Duo)也无法运行 WSL2。
Docker 运行后立马停止
执行下面的命令,然后输入1
:
$ sudo update-alternatives --config iptables
再启动 Docker。