如何解决如何在 Amazon AWS EC2 Windows 上运行带有 Windows 容器的 Docker 桌面或者这是不可能的?
我有一台运行 Windows 10 的桌面计算机,运行 Windows 10、Microsoft 365、在 Windows 容器模式下运行的 Docker 桌面。
我有一台运行 Windows Server 2019 的 Amazon EC2 机器,也安装了 Microsoft 365 并通过 RDP 访问。
本质上,我想要创建一台 EC2 机器,它允许我运行 Microsoft 365 和在 Windows 容器模式下运行的 Docker 桌面。
我尝试过创建 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 Containers 的 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()
解决方法
Docker Desktop 在 Windows Server 2019 OS 主机上不受支持,Docker Desktop 仅在 Windows 10 主机、Mac、Linux Desktop 上受支持(Windows 服务器主机和 Windows 10 桌面存在内核差异)>
-
借助 Windows Server 2019,您可以安装 Docker Engine Enterprise(现称为 Mirantis Container Runtime (MCR))并运行 Windows 容器。
-
以下 Microsoft 文档提供了有关在 Windows Server 上安装 Docker Engine 的信息: https://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/set-up-environment?tabs=Windows-Server
-
如果您想通过脚本安装,请查看此链接(Docker Engine Enterprise 现在称为 Mirantis Container Runtime): https://docs.mirantis.com/containers/v3.1/mcr-deployment-guide/mcr-windows.html
-
您也可以在此处查看此博客并按照以下步骤在 Windows Server 主机上安装 Docker 引擎: https://mechdeveloper.medium.com/windows-server-2016-containers-bc0baa2222c1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。