【问题标题】:How to run Docker Desktop with Windows Containers on Amazon AWS EC2 Windows (or is this not possible)?如何在 Amazon AWS EC2 Windows 上使用 Windows 容器运行 Docker Desktop(或者这不可能)?
【发布时间】:2021-07-15 21:54:36
【问题描述】:

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

我有一台运行 Windows Server 2019 的 Amazon EC2 机器,并在那里安装了 Microsoft 365 并通过 RDP 访问。

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

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

我尝试使用 Microsoft 的这个 AMI 和内置的 Hyper-V https://aws.amazon.com/marketplace/server/procurement?productId=d94e0325-6111-4c69-8c29-87e784a6d0aa

[或者我应该为此使用 Docker Enterprise 吗?]

[或者根本不可能获得一台可以在 AWS 上运行 Docker Windows 容器的 Windows 机器吗?]

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

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

【问题讨论】:

  • 我相信 EC2 可以在 Xen 之上运行。它可能不附带嵌套虚拟化。要尝试不同的东西,您可以安装在 VirtualBox 之上运行的 docker toolbox - 这样您至少不会依赖 Hyper-V

标签: docker amazon-ec2 docker-desktop windows-container


【解决方案1】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-07
    • 2019-07-06
    • 2021-11-20
    • 2017-07-17
    • 2018-01-04
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    相关资源
    最近更新 更多