【问题标题】:Error running linux container on windows 2019 server在 Windows 2019 服务器上运行 linux 容器时出错
【发布时间】:2020-02-05 22:35:28
【问题描述】:

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

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

docker.exe:注册层失败:启动服务实用程序失败 虚拟机 (应用diffe53547ea1d150a4e4afba05378a3a45be5ea769d52fddf03ff25dbd09e43d20d): 容器 e53547ea1d150a4e4afba05378a3a45be5ea769d52fddf03ff25dbd09e43d20d_svm 在 CreateContainer 期间遇到错误:Windows 中的失败 系统调用:虚拟机无法启动,因为 未安装所需的功能。

有人知道缺少什么功能吗?

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

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

它会抛出错误:

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

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

解决起来比较混乱,有两种类型的容器,hyper-v 和服务器容器,如guide 中所发布。我不确定要走哪条路。我很迷茫。

【问题讨论】:

  • 改用Get-VM *WinContainerHost* | Set-VMProcessor -ExposeVirtualizationExtensions $true
  • 你最后做了什么?只是好奇-您是在云端还是在本地运行 Windows 2019?我想在 Windows 2019 上运行 linux 容器——即 LCOW,但在所有文章中我发现它说它还没有准备好投入生产。
  • 是的,我发现晚了。所以我放弃并为linux容器设置了一个side linux主机。我对解决方案不满意,但目前没有其他安全方法。
  • 仍然没有答案?我的客户强迫我使用 Windows Server,但我遇到了和你一样的错误
  • 我正在 AWS (EC2) 提供的 Windows Server 2019 上尝试此操作

标签: docker docker-for-windows windows-server-2019


【解决方案1】:

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

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

启用 VT-x 例如来自 BIOS 的虚拟化 - 嵌套虚拟化的强制要求。使用 AWS,您需要 Bare Metal instance

如果这些都OK,你可以试试前面提到的命令

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

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

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

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

然后再试一次。如果它仍然不存在here is the script 用于创建“ContainerHost”。

【讨论】:

  • 我遇到了与 OP 相同的问题。当我运行 Get-VM 时,没有返回任何内容。运行“Get-VM WinContainerHost”代码时没有出现任何错误。
  • 卡在同一个地方。当我认为应该创建 WinContainerHost 时,Get-VM 什么也不返回。上网查了一下,很多人问同样的问题,但没有答案。有一个 Import-VM 命令应该从文件中导入,但没有详细信息可以从哪里获取所述文件。看来我们只需要运行一个虚拟机,而没有关于如何做到这一点的信息
【解决方案2】:

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

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

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

就是这样

New-VM -Name WinContainerHost -MemoryStartupBytes 1GB

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

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

【讨论】:

    猜你喜欢
    • 2021-08-07
    • 2021-08-24
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    • 2016-08-13
    • 2014-10-31
    • 1970-01-01
    相关资源
    最近更新 更多