龙空技术网

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

码匠君 616

前言:

此刻大家对“docker里运行win10镜像”可能比较关怀,我们都想要剖析一些“docker里运行win10镜像”的相关文章。那么小编在网上汇集了一些关于“docker里运行win10镜像””的相关知识,希望兄弟们能喜欢,大家一起来学习一下吧!

前言

之前,一直在使用 Docker Desktop for Windows 运行 Docker 进行微服架构的开发。Window 10 2004 (20H1)版出来之前,就发现Docker Desktop for Windows有所变化,其一就是安装包的大小,从原来的900多M,变为现在的不到400M;其二新版本的Docker Desktop for Windows一直在建议使用WSL 2进行容器的运行。借着重装系统的机会,折腾了一下,初次研究需要费一些精神。把整个过程整理下来。

软件版本Windows 10 20H1/20H2Docker Desktop for Windows 3.3.3注意事项

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

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

WSL 2 需要更新其内核组件。有关信息,请访问 有关与 WSL 2 的主要区别的信息,请访问 

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

(3) 安装所选的 Linux 分发版

打开 Microsoft Store,并选择你偏好的 Linux 分发版

在分发版的页面中,选择“安装”

(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>

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

此外,如果要使 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

4. 勾选Use WSL 2 based engine。

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

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

5. 点击 Apply & Restart。

6. 请确保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

7. 当 Docker Desktop 重启之后, 进入 Settings > Resources > WSL Integration。

8. 点击 Apply & Restart。

四、查看效果

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

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

验证方法:

1. 首先在Windows PowerSell中,输入:

wsl -l -v

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

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

标签: #docker里运行win10镜像