Amazon EC2 Windows 容器 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Amazon EC2 Windows 容器

Amazon ECS 现在支持使用 经Amazon ECS 优化的 Windows Server AMI 启动的容器实例上的 Windows 容器。

Windows 容器实例使用其自己的 Amazon ECS 容器代理版本。在经 Amazon ECS 优化的 Windows Server AMI 上,Amazon ECS 容器代理在主机上作为一项服务运行。与 Linux 平台不同,此代理不在容器内部运行,因为它使用主机的注册表和指定管道 (位于 \\.\pipe\docker_engine 中) 与 Docker 守护程序进行通信。

Amazon ECS 容器代理的源代码可以在 GitHub 上提供。我们鼓励您针对要包含的更改提交提取请求。但是,我们当前不支持运行此软件的修改后副本。您可以在我们的 GitHub 问题页面上查看 Amazon ECS 和 Windows 容器的开放问题。

Amazon ECS 提供了已针对 Windows 容器进行了优化的 AMI,包括以下变体。有关更多信息,请参阅经 Amazon ECS 优化的 AMI

  • 经 Amazon ECS 优化的 Windows Server 2022 Full AMI – 推荐用于在 Windows 操作系统上启动您的 Amazon ECS 容器实例。

  • 经 Amazon ECS 优化的 Windows Server 2022 Core AMI – 推荐用于在 Windows 操作系统上启动您的 Amazon ECS 容器实例。

  • 经 Amazon ECS 优化的 Windows Server 2019 Full AMI— 推荐用于在 Windows 操作系统上启动您的 Amazon ECS 容器实例。

  • 经 Amazon ECS 优化的 Windows Server 2019 Core AMI— 推荐用于在 Windows 操作系统上启动您的 Amazon ECS 容器实例。

  • 经优化的 Windows Server 2004 Core AMI— 可用于在 Windows 操作系统上启动您的 Amazon ECS 容器实例。

    重要

    经 Amazon ECS 优化的 Windows Server 2004 Core AMI 被弃用。不会发布此 AMI 的任何新版本。

  • 经优化的 Windows Server 1909 Core AMI— 可用于在 Windows 操作系统上启动您的 Amazon ECS 容器实例。

    重要

    经Amazon ECS 优化的 Windows Server 1909 Core AMI 被弃用。不会发布此 AMI 的任何新版本。

  • 经优化的 Windows Server 2016 Full AMI— 可用于在 Windows 操作系统上启动您的 Amazon ECS 容器实例。

Windows Server 2022、Windows Server 2019 和 Windows Server 2016 是长期服务渠道(LTSC)版本。Windows Server 20H2 是一个半年服务渠道(SAC)版本。有关更多信息,请参阅 Windows Server 发行版信息

Windows 容器注意事项

下面是您应了解的有关 Amazon EC2 Windows 容器和 Amazon ECS 的一些事项。

  • Windows 容器无法在 Linux 容器实例上运行,情况也相反。为了更好地放置 Windows 和 Linux 任务,请将 Windows 和 Linux 容器实例保持在单独的集群中,并且仅将 Windows 任务放置在 Windows 集群上。您可以设置以下放置约束,确保 Windows 任务定义仅放置在 Windows 实例上:memberOf(ecs.os-type=='windows')

  • 使用 EC2 和 Fargate 启动类型的任务支持 Windows 容器。

  • Windows 容器和容器实例并不完全支持适用于 Linux 容器和容器实例的所有任务定义和参数。对于某些参数,它们完全不受支持,而其他参数在 Windows 和 Linux 上的行为不相同。有关更多信息,请参阅Amazon EC2 Windows 任务定义注意事项

  • 对于任务的 IAM 角色功能,您需要将 Windows 容器实例配置为在启动时允许该功能。容器在使用此功能时必须运行一些提供的 PowerShell 代码。有关更多信息,请参阅任务的 Windows IAM 角色的其他配置

  • 任务的 IAM 角色功能使用凭证代理来向容器提供凭证。此凭证代理占用了容器实例上的端口 80,因此,如果您使用 IAM 角色处理任务,则端口 80 不可用于任务。对于 Web 服务容器,您可以使用 Application Load Balancer 和动态端口映射来向容器提供标准 HTTP 端口 80 连接。有关更多信息,请参阅服务负载均衡

  • Windows 服务器 Docker 映像很大 (9 GiB)。因此,您的 Windows 容器实例需要比 Linux 容器实例更多的存储空间。

  • 要在 Windows Server 上运行 Windows 容器,容器的基本映像操作系统版本必须与主机的操作系统版本匹配。有关更多信息,请参阅 Microsoft 文档网站上的 Windows 容器版本兼容性。如果您的集群运行不同的 Windows 版本的混合,您可以使用放置约束确保将任务放置在特定操作系统版本上运行的 EC2 实例上:memberOf(attribute:ecs.os-family == WINDOWS_SERVER_<OS_Release>_<FULL or CORE>)。有关更多信息,请参阅检索经 Amazon ECS 优化的 AMI 元数据

Windows 容器入门

学习一个教程,指导您如何使用 使用经典控制台的 Windows 容器入门 的 Amazon Web Services Management Console 中的经 Amazon ECS 优化的 Windows Server AMI在 Amazon ECS 上运行 Windows 容器。