如何在AWS Windows Server环境中运行Docker?

J-R*_*oel 8 amazon-web-services windows-server-2012 docker windows-server-2016

我尝试过的事情:

Windows Server 2012 R2上的工具箱。禁用Hyper-V以允许virtualbox。我无法启用虚拟化,因为它位于物理BIOS上。

在Windows Server 2016 w / Containers EC2上安装Docker EE。正确安装。守护程序正在运行。但是,我无法在hello-world:nanoserver旁边拉一个图像。因此,我搜寻了windowsservercore和nanoserver,由于它们已过时,因此仍然无法使用。尝试拉动时,来自Docker.com的毛躁人士的存储库不起作用。

从全新的Windows Server 2016实例重新开始。我禁用了Hyper-V并安装了ToolBox。不起作用

如何在AWS的Windows服务器环境中运行Docker?

所有的vid / tut看起来都这么简单,但是我确定无法使其正常工作。我很茫然。

小智 6

EC2 实例不允许嵌套虚拟化(EC2 实例本身就是虚拟机)。Docker for Windows 在底层使用 Hyper-V,而 Docker Toolbox 在底层使用 Virtualbox,因此这两种解决方案都不可行。

即使您能够在 Windows EC2 实例上运行它们,性能也不会那么好,因为 Docker for Windows 通过 Samba 将文件挂载到 Docker VM 中,这不是很快。

如果你想运行 Linux 容器,你可能应该在 Linux 上运行它们。设置起来非常快,并且您在 Docker for Windows 中习惯使用的所有 Docker 命令应该仍然有效。

  • 没有理由仅仅因为这个答案不能解决OP所遇到的问题就对其投反对票。有时答案是“不可能”,例如在本例中。OP 没有具体说明他们是否尝试在 AWS 中的 Windows 上的 Docker Desktop 中运行 Windows 或 Linux 容器,而基于 Windows 中使用的技术和限制,这在 AWS 中产生了很大的差异。如果问题是如何在 AWS 中的 Windows 上的 Docker Desktop 中运行 Linux 容器,正确的答案是“不可能”(如本答案中所述)。不要仅仅因为某人的答案是坏消息而对某人投反对票。 (3认同)

Tre*_*van 5

为了在Windows Server上使用Docker,您实际上不需要安装Docker for Windows(以前称为Docker Toolbox)。

首先,重要的是要了解Windows Server 2016平台上有两种不同类型的容器:Windows容器和Hyper-V容器。

  • Windows容器-在Windows Server内核之上运行,此处未使用任何虚拟机
  • Hyper-V容器-虚拟机容器,每个容器都有自己的内核

在Hyper-V之上还有第三个选项运行,称为Windows上的Linux容器(LCOW),但我们不会对此进行介绍,因为您似乎是在询问Windows容器。

您可以查看以下几个选项:

AWS上的裸机实例

如果您绝对需要在AWS上运行Windows Hyper-V容器,或者要在Docker for Windows上运行Linux容器,则可以设置i3.metalEC2实例类型,这是一个裸机实例。您可以将Windows Server 2016部署到i3.metal实例类型上,安装Hyper-V,然后安装Docker for Windows。这使您能够同时运行Linux容器(在Hyper-V Linux来宾下),Hyper-V容器和Windows容器。

ECS优化的AMI

Amazon提供了可用于部署EC2实例的Amazon Machine Image(AMI),其中包含针对Amazon Elastic Container Service(ECS)的优化。ECS是基于云的群集服务,可让您跨EC2中运行的一组工作节点部署基于容器的应用程序。

通常,您将一起使用ECS和经ECS优化的AMI来构建生产规模的集群,以将您的应用程序部署到该集群上。

Windows Server 2016与容器AMI

还有可用的“ 带有容器的Windows Server 2016 ” AMI,它与ECS优化的AMI不同,但确实包括对在Windows Server 2016上运行Docker容器的支持。您要做的就是部署新的EC2实例,使用此AMI,您可以登录并开始发出Docker命令来启动Windows容器。如果您是Windows容器的新手,那么此选项很可能是您最简单的选择。

  • 带有容器AMI的Windows Server 2016带有极其陈旧的docker版本。一旦安装了最新版本,`docker daemon`将因为没有启用hyper-v而拒绝启动。有人对此有解决方案吗? (3认同)
  • @Ruskin Windows Server 2019带有容器的AMI,它具有Docker版本17 (2认同)