13

我只是在 Windows 2019 服务器上安装 docker 来运行 linux 容器。

我遵循本指南“在 Windows Server 2019 上运行 Linux 容器”一章。当我尝试运行 bash shell 时,出现以下错误:

docker.exe: failed to register layer: failed to start service utility VM (applydiffe53547ea1d150a4e4afba05378a3a45be5ea769d52fddf03ff25dbd09e43d20d): container e53547ea1d150a4e4afba05378a3a45be5ea769d52fddf03ff25dbd09e43d20d_svm encountered an error during CreateContainer: failure in a Windows system call: The virtual machine could not be started because a required feature is not installed.

任何人都知道缺少什么功能?

更新: 问题似乎与程序上的第一个错误有关。运行时:

Get-VM WinContainerHost | Set-VMProcessor -ExposeVirtualizationExtensions $true

它抛出错误:

Get-VM : Hyper-V was unable to find a virtual machine with name "ContainerHost". 

女巫我放弃相信这是脚本中的指南,因为没有任何命令可以创建这个 WinContainerHost 虚拟机。

解决起来更令人困惑,有 2 种类型的容器,hyper-v 和服务器容器,如本 指南中所述。我不确定要走哪条路。我很迷茫。

4

2 回答 2

4

抱歉,我没有足够的声誉来评论/询问更多信息。

运行 Linux 容器时必须使用Hyper-V 容器或 Moby VM - 运行这些容器需要虚拟化。所以在这种情况下,你不能使用“服务器容器”。

从 BIOS 启用 VT-x 例如虚拟化 - 嵌套虚拟化是必需的。使用 AWS,您需要Bare Metal instance

如果这些都可以,您可以尝试已经提到的命令

Get-VM *WinContainerHost* | Set-VMProcessor -ExposeVirtualizationExtensions $true

相反,如果它们的名称有所不同。如果仍然没有成功,Get-VM命令应该列出所有虚拟机,输出是什么?

您可以安装运行 LCOW 所需的模块

Install-WindowsFeature -Name Hyper-V,Containers -IncludeAllSubFeature -IncludeManagementTools

然后再试一次。如果它仍然不存在,这里是创建“ContainerHost”的脚本。

于 2020-05-09T14:57:38.143 回答
2

这听起来真的很愚蠢,我的意思是 DUMB。

我已经解决了这个问题,我简直不敢相信到处都有问题没有回答。

基本上你只需要在 Hyper-V 中创建一个虚拟机。它不需要操作系统或任何特殊参数。

就是这个

New-VM -Name WinContainerHost -MemoryStartupBytes 1GB

在 Get-VM 工作之后,Docker 启动并运行 linux 容器。

我的意思是,我能说什么!!!

于 2022-01-07T09:47:09.737 回答