Amazon EC2 Container Service
开发人员指南 (API Version 2014-11-13)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

Windows 任务定义

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

Windows 任务定义参数

以下支持表说明了 Windows 容器支持哪些参数,不支持哪些参数或哪些参数在该容器中的行为不同。有关这些参数与 Amazon ECS 相关的更多信息,请参阅任务定义参数

family

支持:是

taskRoleArn

支持:是

附加说明:Windows 上的任务的 IAM 角色需要您在启动容器实例时将 ECS_ENABLE_TASK_IAM_ROLE 环境变量设置为 true。此外,您的容器必须运行一些配置代码才能利用此功能。有关更多信息,请参阅 任务的 Windows IAM 角色

networkMode

支持:否

附加说明:Docker for Windows 使用的网络模式不同于 Docker for Linux。在将任务定义注册到 Windows 容器时,您不得指定网络模式。如果您使用控制台将任务定义注册到 Windows 容器,则必须使用 JSON 输入形式并删除网络模式对象;否则,网络模式将注册为 bridge,此操作将失败。

containerDefinitions

支持:是

附加说明:并非所有容器定义参数都受支持。查看以下列表来了解各个参数支持。

name

支持:是

image

支持:是

memory

支持:Windows 端的未知行为

附加说明:Amazon ECS 任务定义中需要内存参数;不过,没有与此参数在容器实例上的行为有关的已发布 Microsoft 文档。Amazon ECS 将采用针对 Linux 容器实例的处理方式来处理此参数:如果您向容器提供 500 MiB,则在放置任务时,将从容器实例上的可用资源中减去该内存量。

memoryReservation

支持:否

portMappings

支持:有限

附加说明:Windows 上的端口映射使用 NetNAT 网关地址而非 localhost。没有针对 Windows 上的端口映射的回环,因此,您无法从主机自身访问容器的映射端口。

cpu

支持:Windows 端的未知行为

附加说明:没有与此参数在容器实例上的行为有关的已发布 Microsoft 文档。Amazon ECS 将采用针对 Linux 容器实例的处理方式来处理此参数:如果您向容器提供 500 个 CPU 份额,则在放置任务后,将从容器实例上的可用资源中减去这些 CPU 份额。

essential

支持:是

entryPoint

支持:是

command

支持:是

workingDirectory

支持:是

environment

支持:是

disableNetworking

支持:否

links

支持:否

hostname

支持:是

dnsServers

支持:否

dnsSearchDomains

支持:否

extraHosts

支持:否

readonlyRootFilesystem

支持:否

mountPoints

支持:有限

附加说明:容器可在 $env:ProgramData 所在的驱动器上装载整个目录。容器无法在其他驱动器上装载目录,并且装载点不能跨驱动器。

volumesFrom

支持:是

logConfiguration

支持:是

附加说明:可在 Docker 文档中的配置日志记录驱动程序中找到 Docker 的可用日志驱动程序列表。Amazon ECS 当前支持一部分对 Docker 守护程序可用的日志记录驱动程序(如 logDriver 中的有效值所示);我们已使用 Amazon ECS 上的 Windows 容器测试 awslogsjson-file 日志驱动程序。可能会在 Amazon ECS 容器代理的未来版本中提供其他日志驱动程序。

privileged

支持:否

user

支持:否

dockerLabels

支持:是

volumes

支持:是

name

支持:是

host

支持:有限

附加说明:容器可在 $env:ProgramData 所在的驱动器上装载整个目录。容器无法在其他驱动器上装载目录,并且装载点不能跨驱动器。例如,您可以装载 C:\my\path:C:\my\pathD:\:D:\,而不能装载 D:\my\path:C:\my\pathD:\:C:\my\path

Windows 示例任务定义

以下示例任务定义可帮助您在 Amazon ECS 上开始使用 Windows 容器。

例 适用于 Windows 的 Amazon ECS 控制台示例应用程序

以下任务定义是 Amazon ECS 的首次运行向导中生成的 Amazon ECS 控制台示例应用程序;它已转为使用 microsoft/iis Windows 容器映像。

Copy
{ "family": "windows-simple-iis", "containerDefinitions": [ { "name": "windows_sample_app", "image": "microsoft/iis", "cpu": 100, "entryPoint":["powershell", "-Command"], "command":["New-Item -Path C:\\inetpub\\wwwroot\\index.html -Type file -Value '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p>'; C:\\ServiceMonitor.exe w3svc"], "portMappings": [ { "protocol": "tcp", "containerPort": 80, "hostPort": 80 } ], "memory": 500, "essential": true } ] }