Windows 10 家庭版 + WSL 2 + Docker Desktop
前言
前几天写 如何在 Windows 10 家庭版上使用 Docker 时,用的是 VirtualBox + Docker Machine 的方案,无意间发现 boot2docker 已经被弃用了:(
目前,Docker 推荐 Windows 10 家庭版用户启用 WSL 2 并以其为后台安装 Docker Desktop。早之前折腾 WSL 1 未果,现在 WSL 2 都有了,再捡起来吧(摊手)。
安装过程
WSL 2
Windows 10 上使用 WSL 2 有以下要求:
- 对于 x64 系统: 版本 1903 或更高版本,采用 内部版本 18362 或更高版本。
- 对于 ARM64 系统: 版本 2004 或更高版本,采用 内部版本 19041 或更高版本。
- 低于 18362 的版本不支持 WSL 2。 使用 Windows Update 助手更新 Windows 版本。
Windows 图标 + R
启动 cmd ,键入命令 winver
检查 Windows 版本及内部版本号。
如果运行的是 Windows 10 版本1903 或 1909,请在 Windows 菜单中打开“设置”,导航到“更新和安全性”,然后选择“检查更新”。 内部版本号必须是 18362.1049+ 或 18363.1049+,次要内部版本号需要高于 .1049。
启用可选功能
需要开启两个可选功能,然后 重启 。
1. Windows Subsystem for Linux
以 管理员身份 打开 PowerShell 运行以下语句,启用“适用于 Linux 的 Windows 子系统”可选功能。
1 | dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart |
2. Virtual Machine Platform
继续运行以下语句,启用“虚拟机平台”可选功能。
1 | dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart |
重启
安装 Linux 内核更新
下载并安装 适用于 x64 计算机的 WSL2 Linux 内核更新包 ,建议迅雷下载。
将 WSL 2 设置为默认版本
默认使用之前的 WSL 1,所以得手动设置使用 WSL 2 ,在 PowerShell 中运行以下语句将 WSL 2 设置为默认。
- 无需管理员身份启动 PowerShell
1 | wsl --set-default-version 2 |
适用于 Linux 的 Windows 子系统发行版包
一共有三种安装方式,第三种尝试失败暂未解决。
1. 使用命令行安装
以管理员身份运行 cmd,指定安装 Ubuntu。安装完毕后可以在开始菜单列表中看到 Ubuntu,实际上与从 Microsoft Store 安装一样。
1 | wsl --install -d Ubuntu |
2. 从 Microsoft Store 安装
直接在 Microsoft Store 中搜索 Linux 发行(例如,Ubuntu/Kali/Debian)进行安装,默认安装在系统盘。安装完毕后单击运行,然后开始安装 Ubuntu,安装完毕后要求设置用户名和密码(默认为 Linux 管理员账户)。
3. 手动下载安装
为了安装在非系统盘,需要手动下载和安装。下载 Ubuntu 20.04 ,这个用迅雷下载迷之慢,我用 Chrome 几分钟就下好了。然后使用 Powershell 执行以下语句进行安装。
- 无需管理员身份启动 PowerShell
- 注意需要将文件放到安装的目标文件夹
1 | Add-AppxPackage .\Ubuntu_2004.2020.424.0_x64.appx |
添加后 Windows 菜单里就出现了 Ubuntu ,打开商店的已安装列表查看。
单击运行,安装 Ubuntu ,遇到以下错误 重启未解决。
1 | Installing, this may take a few minutes... |
安装 Windows 终端(可选)
打开 Microsoft Store 搜索 Windows Terminal
并安装,这是之前超火(现在也超火)的微软开源项目 microsoft/terminal ,也可以直接下载源码编译。为了省事儿当然直接从商店安装了x
安装终端后,它会将 PowerShell 设置为默认配置文件,打开更多可以看到 Ubuntu 终端的选项。Terminal 的配置文件有许多配置项,暗示可以花样自定义,挖个坑之后填。
Docker Desktop
今年 Docker Desktop 终于支持 Windows 10 家庭版了 👉 Docker Desktop for Windows Home is here! ,安装 WSL 2 步骤比较多,但是 Docker Desktop 直接用安装包安装即可。
Windows 10 Home 上安装 Docker Desktop 有以下要求:
- Windows 10 版本 1903 或更高版本
- 安装并启用 WSL 2
- 下载并安装 Linux 内核更新
- 硬件要求
- 具有二级地址转换 (SLAT) 的 64 位处理器
- 4GB 内存
- BIOS 级别硬件虚拟化支持
打开任务管理器(CTRL + SHIFT + ESC
)的性能选项卡查看是否启用虚拟化
下载 Docker Desktop for Mac and Windows 并安装,其中包括了: Docker Engine, Docker CLI client, Docker Compose, Notary, Kubernetes, Credential Helper 。
安装完毕后要求注销再登录,登陆后 Docker Desktop 会自动弹出,安装完成。
使用 Docker
打开终端(Windows Terminal
)就可以使用 docker
和 docker-compose
了。
运行以下语句启动一个 MySQL 容器,名称设置为 mysql
,默认拉取 mysql:latest
。
1 | docker run -d -e MYSQL_ROOT_PASSWORD=password -p 3306:3306 --name mysql mysql |
容器启动后就可以连接 MySQL 服务器了。
1 | docker exec -it mysql mysql -u root -p |
数据卷
Docker 数据卷在以下位置:
1 | \\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes\ |
加速
在设置中添加国内镜像源
结语
Docker Desktop 真香( • ̀ω•́ )✧