Windows 10 2004 (20H1) 安装 Docker Desktop for Windows 以 WSL 2 方式运行容器

354 阅读7分钟

前言

从内测算起,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

  1. 管理员身份打开 PowerShell 控制台。
  2. 运行以下命令:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

如果无法找到此命令,请确保你以管理员身份运行 PowerShell。

安装完成后,请重启操作系统。

(3) 方式二、使用 CMD 和 DISM 启用 Hyper-V

部署映像服务和管理工具 (DISM) 可帮助配置 Windows 和 Windows 映像。在众多应用程序中,DISM 可以在操作系统运行时启用 Windows 功能。

使用 DISM 启用 Hyper-V 角色:

  1. 管理员身份打开 PowerShell 或 CMD 会话。
  2. 键入下列命令:
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 分发版

  1. 打开 Microsoft Store,并选择你偏好的 Linux 分发版 (如果上述连接打开有错,请直接打开Microsoft Store搜索)。

单击以下链接会打开每个分发版的 Microsoft Store 页面,(如果下述连接打开有错,请直接打开Microsoft Store搜索)。:

  1. 在分发版的页面中,选择“获取”。

(4) 设置新分发版

首次启动新安装的 Linux分发版时,将打开一个控制台窗口,

系统会要求你等待一分钟或两分钟,以便文件解压缩并存储到电脑上。未来的所有启动时间应不到一秒。

然后,需要为新的 Linux 分发版创建用户帐户和密码。

(5) 将分发版版本设置为 WSL 1 或 WSL 2

可以打开 PowerShell 命令行并输入以下命令(仅在 Windows 内部版本 19041 或更高版本中可用),来检查分配给每个已安装的 Linux 分发版的 WSL 版本:

wsl -l -v

wsl --list --verbose

通过以上命令,就可以查看刚刚已经安装的Linux发行版本,以及当前的WSL版本

若要将分发版设置为受某一 WSL 版本支持,请运行:

wsl --set-version <distribution name> <versionNumber>

请确保将 替换为你的分发版的实际名称,并将 替换为数字“1”或“2”。 可以随时更改回 WSL 1,方法是运行与上面相同的命令,但将“2”替换为“1”。

此外,如果要使 WSL 2 成为你的默认体系结构,可以通过此命令执行该操作:

wsl --set-default-version 2

这会将安装的任何新分发版的版本设置为 WSL 2。

Docker Desktop 需要的就是 WSL 2

注意:第一次输入上述命令会出现以下提示:

WSL 2 需要更新其内核组件。有关信息,请访问 https://aka.ms/wsl2kernel
有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2

请根据提示中的https://aka.ms/wsl2kernel地址,打开对应的网页,下载适用于 x64 计算机的 WSL2 Linux 内核更新包(如下图所示),并进行安装。安装完成后,再次输入wsl --set-default-version 2命令即可

微信截图_20210324093624.png

三、安装Docker Desktop for Windows

  1. 双击运行 Docker Desktop Installer.exe 安装。(为了避免不可预知的问题,最好用右键“以管理员身份运行”)。跟随安装界面,一路下一步即可。所有的选项都采用默认。安装成功后,点击“Close”关闭窗口。
  2. 安装成功后,运行 Docker Desktop
  3. 打开 Docker Desktop Settings,选择General

  1. 勾选Use WSL 2 based engine

如果在已经支持WSL的操作系统上,安装Docker Desktop,那么这个选项是被默认选中的。

如果不选中Use WSL 2 based engine,Resources下面就会回到之前版本的模样。自己制定CPU、内存等信息。但是该版本指定这些信息会出错。

  1. 点击 Apply & Restart。

  2. 请确保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
  1. 当 Docker Desktop 重启之后, 进入 Settings > Resources > WSL Integration

在这个界面中,选择任何你想要使用的Linux发行版本。

  1. 点击 Apply & Restart。

四、查看效果

以上内容完成之后,主要工作就已经完成了。可以安装运行几个容器查看效果。

如果觉得默认的仓库慢,可以在Settings>Docker Engine中的“registry-mirrors”配置你自己的加速器。

验证方法:

  1. 首先在Windows PowerSell中,输入:
wsl -l -v

就可以查看到,多了docker desktop的信息。

  1. 在Windows CMD中,通过命令随便运行几个容器(我是通过docker-compose, 运行自己的镜像)。在Linux中,就可以查看到已经运行的容器信息。

参考资料:

[1] :docs.microsoft.com/zh-cn/virtu… [2] :docs.microsoft.com/zh-cn/windo… [3] :docs.docker.com/docker-for-…