Amazon Elastic Container Service
开发人员指南 (API 版本 2014-11-13)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

Windows 容器

Amazon ECS 现在支持使用 Amazon ECS-optimized Windows AMI 启动的容器实例上的 Windows 容器。

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

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

Windows 容器注意事项

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

  • Windows 容器无法在 Linux 容器实例上运行,反之亦然。要确保正确放置 Windows 和 Linux 任务,您应将 Windows 容器实例和 Linux 容器实例放置在单独的集群中,并且仅将 Windows 任务放置在 Windows 集群上。您可以设置以下放置约束,确保 Windows 任务定义仅放置在 Windows 实例上:memberOf(ecs.os-type=='windows')

  • 仅支持使用 EC2 启动类型的任务使用 Windows 容器。对于 Windows 容器,Fargate 启动类型目前不受支持。有关启动类型的更多信息,请参阅 Amazon ECS 启动类型

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

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

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

  • 由于 Windows 服务器 Docker 映像很大 (9 GiB),因此您的容器实例所需的存储空间大于 Linux 容器实例所需的存储空间,后者通常具有较小的映像。

本页内容: