如何在Amazon AWS EC2 Windows上使用Windows容器运行Docker Desktop(或者这是不可能的)?

如何在Amazon AWS EC2 Windows上使用Windows容器运行Docker Desktop(或者这是不可能的)?,docker,amazon-ec2,docker-desktop,windows-container,Docker,Amazon Ec2,Docker Desktop,Windows Container,我有一台运行Windows 10的台式机,运行Windows 10,Microsoft 365,Docker DESKTOP在Windows容器模式下运行 我有一台运行WindowsServer2019的AmazonEC2机器,在上面也安装了Microsoft365,并通过RDP访问 基本上,我想创建一台EC2机器,它允许我在Windows容器模式下运行Microsoft 365和Docker Desktop 我曾经尝试过创建AWS EC2实例并安装Docker for Desktop,但是我遇

我有一台运行Windows 10的台式机,运行Windows 10,Microsoft 365,Docker DESKTOP在Windows容器模式下运行

我有一台运行WindowsServer2019的AmazonEC2机器,在上面也安装了Microsoft365,并通过RDP访问

基本上,我想创建一台EC2机器,它允许我在Windows容器模式下运行Microsoft 365和Docker Desktop

我曾经尝试过创建AWS EC2实例并安装Docker for Desktop,但是我遇到了很多神秘的错误。(见下文)

我试着使用微软的这个内置Hyper-V的AMI

[或者我应该使用Docker Enterprise进行此操作吗?]

[或者根本不可能获得在AWS上运行Docker Windows容器的Windows计算机?]

[或者我需要选择特定类型的机器大小[t4.large或其他]-我以前在Microsoft Azure上体验过,只有在特定规格的机器上才能运行Docker Desktop,这允许“虚拟化之上的虚拟化”]

System.InvalidOperationException:
作业失败,消息为:“DockerDesktopVM”无法启动。(虚拟机ID 677B7F36-8A44-42CE-AD29-7884DDCE164C)
虚拟机管理服务无法启动虚拟机“DockerDesktopVM”,因为其中一个Hyper-V组件未运行(虚拟机ID 677B7F36-8A44-42CE-AD29-7884DDCE164C)。
在C:\workspaces\PR-15633\src\github.com\Docker\pinata\win\src\Docker.Backend\hyperfinfrastructure.HandleUpdatedJob(CIMConcreteJob updatedJob)中的Docker.Backend.HyperV\hyperfinfrastructure.cs:第762行
在C:\workspaces\PR-15633\src\github.com\Docker\pinata\win\src\Docker.Backend\HyperV\hyperfinfrastructure.cs中的Docker.Backend.hypernfrastructure.d_38.MoveNext()处:第696行
---来自引发异常的上一个位置的堆栈结束跟踪---
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中
在C:\workspaces\PR-15633\src\github.com\Docker\pinata\win\src\Docker.Backend\HyperV\hyperfinfrastructure.cs中的Docker.Backend.hypernfrastructure.d\uu 30.MoveNext()处:第544行
---来自引发异常的上一个位置的堆栈结束跟踪---
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中
在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中
在C:\workspaces\PR-15633\src\github.com\Docker\pinata\win\src\Docker.Backend\HyperV.d\uu 6.MoveNext()中的Docker.Backend.HyperV.d\uu()处:第99行
---来自引发异常的上一个位置的堆栈结束跟踪---
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中
在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中
在C:\workspaces\PR-15633\src\github.com\Docker\pinata\win\src\Docker.Backend\HttpAPI.HyperVController.d_u7.MoveNext()中的Docker.Backend.HttpAPI.HyperVController()中:第42行
---来自引发异常的上一个位置的堆栈结束跟踪---
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中
在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中
在System.Threading.Tasks.TaskHelperExtensions.d_u1`1.MoveNext()中
---来自引发异常的上一个位置的堆栈结束跟踪---
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中
在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中
在System.Web.Http.Controllers.ApiControllerActionInvoker.d_u1.MoveNext()中
---来自引发异常的上一个位置的堆栈结束跟踪---
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中
在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中
在System.Web.Http.Controllers.ActionFilterResult.d_u5.MoveNext()中
---来自引发异常的上一个位置的堆栈结束跟踪---
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中
在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中
在System.Web.Http.Dispatcher.HttpControllerDispatcher.d_u15.MoveNext()中
  • Docker Desktop在Windows Server 2019操作系统主机上不受支持,Docker Desktop仅在Windows 10主机、Mac、Linux桌面上受支持(Windows Server主机和Windows 10桌面之间存在内核差异)

  • 使用Windows Server 2019,您可以安装Docker Engine Enterprise(现在称为Mirantis容器运行时(MCR))并运行Windows容器

  • 以下Microsoft文档包含有关在Windows Server上安装Docker引擎的信息:

  • 如果要通过脚本签出此链接安装(Docker Engine Enterprise现在称为Mirantis容器运行时):

  • 您也可以在此处签出此博客,并按照以下步骤在Windows Server主机上安装Docker Engine:


我相信EC2可以在Xen上运行。而且它可能不会与嵌套虚拟化一起出现。要尝试不同的东西,您可以安装在VirtualBox上运行的,这样您至少不需要依赖Hyper-V
System.InvalidOperationException:
job failed with message: 'DockerDesktopVM' failed to start. (Virtual machine ID 677B7F36-8A44-42CE-AD29-7884DDCE164C)

The Virtual Machine Management Service failed to start the virtual machine 'DockerDesktopVM' because one of the Hyper-V components is not running (Virtual machine ID 677B7F36-8A44-42CE-AD29-7884DDCE164C).
   at Docker.Backend.HyperVInfrastructure.HandleUpdatedJob(CIMConcreteJob updatedJob) in C:\workspaces\PR-15633\src\github.com\docker\pinata\win\src\Docker.Backend\HyperV\HyperVInfrastructure.cs:line 762
   at Docker.Backend.HyperVInfrastructure.<HandleMaybeAsyncJob>d__38.MoveNext() in C:\workspaces\PR-15633\src\github.com\docker\pinata\win\src\Docker.Backend\HyperV\HyperVInfrastructure.cs:line 696
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Docker.Backend.HyperVInfrastructure.<StartVMAsync>d__30.MoveNext() in C:\workspaces\PR-15633\src\github.com\docker\pinata\win\src\Docker.Backend\HyperV\HyperVInfrastructure.cs:line 544
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.Backend.HyperV.<StartAsync>d__6.MoveNext() in C:\workspaces\PR-15633\src\github.com\docker\pinata\win\src\Docker.Backend\HyperV\HyperV.cs:line 99
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.Backend.HttpAPI.HyperVController.<StartAsync>d__7.MoveNext() in C:\workspaces\PR-15633\src\github.com\docker\pinata\win\src\Docker.Backend\HttpAPI\HyperVController.cs:line 42
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Threading.Tasks.TaskHelpersExtensions.<CastToObject>d__1`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__15.MoveNext()