前言
从内测算起,Windows 10 2020的第一个正式版(v2004)已经打磨了一年之久,不出意外,它会在5月28日开启全面推送。看到这个消息,对于软件“洁癖”的我,迫不及待的想要进行更新,每天都关注一下 itellyou。5月12日,已经有了最新的更新,为MSDN版2020第一个正式版,版本号为v2004(20H1),镜像为官方发布的最新版镜像。官方发布的最新集成补丁至202005,系统版本号Build 19041.264。马上就下来进行了安装。
之前,一直在使用 Docker Desktop for Windows 运行 Docker 进行微服架构的开发。2004出来之前,就发现Docker Desktop for Windows有所变化,其一就是安装包的大小,从原来的900多M,变为现在的不到400M;其二新版本的Docker Desktop for Windows一直在建议使用WSL 2进行容器的运行。借着重装系统的机会,折腾了一下,初次研究着需要费一些精神。把整个过程整理下来。
软件版本
注意事项
Windows 10 的 WSL 2 需要依赖于, Microsoft Store中的应用。适用于 Linux 的 Windows 子系统只能在系统驱动器(通常是 C: 驱动器)中运行,所以注意C盘的空间。
一、在 Windows 10 上安装 Hyper-V
Docker Desktop 想要在Windows上运行,需要依赖于Windows的Hyper-V模块。所以首先就要启用Hyper-V。
启用 Hyper-V 以在 Windows 10 上创建虚拟机。可以通过多种方式启用 Hyper-V,包括使用 Windows 10 控制面板、PowerShell 或使用部署映像服务和管理工具 (DISM)。
(1) 检查要求
- Windows 10 企业版、专业版或教育版
- 具有二级地址转换 (SLAT) 的 64 位处理器。
- CPU 支持 VM 监视器模式扩展(Intel CPU 上的 VT-c)。
- 最少 4 GB 内存。
请勿在 Windows 10 家庭版上安装 Hyper-V。
(2) 方式一、使用 PowerShell 启用 Hyper-V
- 以管理员身份打开 PowerShell 控制台。
- 运行以下命令:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
如果无法找到此命令,请确保你以管理员身份运行 PowerShell。安装完成后,请重启操作系统。
(3) 方式二、使用 CMD 和 DISM 启用 Hyper-V
部署映像服务和管理工具 (DISM) 可帮助配置 Windows 和 Windows 映像。在众多应用程序中,DISM 可以在操作系统运行时启用 Windows 功能。
使用 DISM 启用 Hyper-V 角色:
- 以管理员身份打开 PowerShell 或 CMD 会话。
- 键入下列命令:
DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V
(4) 方式三、通过“设置”启用 Hyper-V
- 右键单击 Windows 按钮并选择“应用和功能”。(左下角Windows图标)
- 选择相关设置下右侧的“程序和功能”。
- 选择“打开或关闭 Windows 功能”。
- 选择“Hyper-V”,然后单击“确定”。
安装完成后,系统会提示你重启计算机。
二、适用于 Linux 的 Windows 子系统安装
(1) 安装适用于 Linux 的 Windows 子系统
必须先启用“适用于 Linux 的 Windows 子系统”可选功能,然后才能在 Windows 上安装 Linux 分发版。
以管理员身份打开 PowerShell 并运行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
若要仅安装 WSL 1,现在应重启计算机并继续安装所选的 Linux 分发版,否则请等待重启并继续更新到 WSL 2
(2) 更新到 WSL 2
2.1 若要更新到 WSL 2,必须满足以下条件:
- 运行 Windows 10(已更新到版本 2004 的内部版本 19041 或更高版本)。
- 通过按 Windows 徽标键 + R, 检查你的 Windows 版本,然后键入 winver,选择“确定” 。 (或者在 Windows 命令提示符下输入 ver 命令)。 如果内部版本低于 19041,请更新到最新的 Windows 版本。
2.2 启用“虚拟机平台”可选组件
安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。
以管理员身份打开 PowerShell 并运行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重新启动计算机,以完成 WSL 安装并更新到 WSL 2。
2.3 将 WSL 2 设置为默认版本
安装新的 Linux 分发版时,请在 Powershell 中运行以下命令,以将 WSL 2 设置为默认版本:
wsl --set-default-version 2
(3) 安装所选的 Linux 分发版
- 打开 Microsoft Store,并选择你偏好的 Linux 分发版 (如果上述连接打开有错,请直接打开Microsoft Store搜索)。
单击以下链接会打开每个分发版的 Microsoft Store 页面,(如果下述连接打开有错,请直接打开Microsoft Store搜索)。:
- Ubuntu 16.04 LTS
- Ubuntu 18.04 LTS
- openSUSE Leap 15.1
- SUSE Linux Enterprise Server 12 SP5
- SUSE Linux Enterprise Server 15 SP1
- Kali Linux
- Debian GNU/Linux
- Fedora Remix for WSL
- Pengwin
- Pengwin Enterprise
- Alpine WSL
- 在分发版的页面中,选择“获取”。
(4) 设置新分发版
首次启动新安装的 Linux分发版时,将打开一个控制台窗口。(就是之前安装的应用)
系统会要求你等待一分钟或两分钟,以便文件解压缩并存储到电脑上。未来的所有启动时间应不到一秒。
(5) 将分发版版本设置为 WSL 1 或 WSL 2
可以打开 PowerShell 命令行并输入以下命令(仅在 Windows 内部版本 19041 或更高版本中可用),来检查分配给每个已安装的 Linux 分发版的 WSL 版本:
wsl -l -v
或
wsl --list --verbose
通过以上命令,就可以查看刚刚已经安装的Linux发行版本,以及当前的WSL版本
若要将分发版设置为受某一 WSL 版本支持,请运行:
wsl --set-version
请确保将
此外,如果要使 WSL 2 成为你的默认体系结构,可以通过此命令执行该操作:
wsl --set-default-version 2
这会将安装的任何新分发版的版本设置为 WSL 2。
Docker Desktop 需要的就是 WSL 2
三、安装Docker Desktop for Windows
- 双击运行 Docker Desktop Installer.exe 安装。(为了避免不可预知的问题,最好用右键“以管理员身份运行”)。跟随安装界面,一路下一步即可。所有的选项都采用默认。安装成功后,点击“Close”关闭窗口。
- 安装成功后,运行 Docker Desktop
- 打开 Docker Desktop Settings,选择General
- 勾选Use WSL 2 based engine。
如果在已经支持WSL的操作系统上,安装Docker Desktop,那么这个选项是被默认选中的。如果不选中Use WSL 2 based engine,Resources下面就会回到之前版本的模样。自己制定CPU、内存等信息。但是该版本指定这些信息会出错。
- 点击 Apply & Restart。
- 请确保Linux发行版本是运行在WSL 2 模式下。WSL 在V1 和 V2 两种模式下都可以运行。
检查 WSL 模式,运行下面的命令:
wsl -l -v
如果现有的WSL 是v1,通过下面的命令可以升级为 v2:
wsl --set-version (distro name) 2
想要把 v2 设置为默认模式,可以通过下面的命令:
wsl --set-default-version 2
- 当 Docker Desktop 重启之后, 进入 Settings > Resources > WSL Integration。
在这个界面中,选择任何你想要使用的Linux发行版本。
- 点击 Apply & Restart。
四、查看效果
以上内容完成之后,主要工作就已经完成了。可以安装运行几个容器查看效果。
如果觉得默认的仓库慢,可以在Settings>Docker Engine中的“registry-mirrors”配置你自己的加速器。
验证方法:
- 首先在Windows PowerSell中,输入:
wsl -l -v
就可以查看到,多了docker desktop的信息。
- 在Windows CMD中,通过命令随便运行几个容器(我是通过docker-compose, 运行自己的镜像)。在Linux中,就可以查看到已经运行的容器信息。
参考资料:
1: https://docs.microsoft.com/zh-cn/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v
2: https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
3: https://docs.docker.com/docker-for-windows/wsl/