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.

示例任务定义

以下是一些任务定义示例,您可以使用这些示例来开始创建自己的任务定义。有关更多信息,请参阅 任务定义参数创建任务定义

WordPress 和 MySQL

以下任务定义指定链接在一起的 WordPress 容器和 MySQL 容器。这些 WordPress 容器在主机端口 80 上开放容器端口 80。容器实例上的安全组将需要打开端口 80 以便能够从 Web 浏览器访问此 WordPress 安装。

有关 WordPress 容器的更多信息,请转到 https://registry.hub.docker.com/_/wordpress/ 上的正式 WordPress Docker Hub 存储库。有关 MySQL 容器的更多信息,请转到 https://registry.hub.docker.com/_/mysql/ 上的正式 MySQL Docker Hub 存储库。

重要

如果您将此任务定义与负载均衡器一起使用,则需要在容器启动后立即通过容器实例上的 Web 接口完成 WordPress 安装程序安装。负载均衡器运行状况检查 ping 将预计来自服务器的 200 响应,但 WordPress 将返回 301,直到安装完成。如果未通过负载均衡器运行状况检查,则负载均衡器会取消注册该实例。

Copy
{ "containerDefinitions": [ { "name": "wordpress", "links": [ "mysql" ], "image": "wordpress", "essential": true, "portMappings": [ { "containerPort": 80, "hostPort": 80 } ], "memory": 500, "cpu": 10 }, { "environment": [ { "name": "MYSQL_ROOT_PASSWORD", "value": "password" } ], "name": "mysql", "image": "mysql", "cpu": 10, "memory": 500, "essential": true } ], "family": "hello_world" }

awslogs 日志驱动程序

以下示例演示如何在任务定义中使用 awslogs 日志驱动程序。nginx 容器将其日志发送到 us-west-2 区域中的 ecs-log-streaming 日志组。有关更多信息,请参阅 使用 awslogs 日志驱动程序

Copy
{ "containerDefinitions": [ { "memory": 128, "portMappings": [ { "hostPort": 80, "containerPort": 80, "protocol": "tcp" } ], "essential": true, "name": "nginx-container", "image": "nginx", "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "ecs-log-streaming", "awslogs-region": "us-west-2" } }, "cpu": 0 } ], "family": "example_task_1" }

Amazon ECR 映像和任务定义 IAM 角色

以下示例使用 123456789012.dkr.ecr.us-west-2.amazonaws.com 注册表中带 v1 标记的名为 aws-nodejs-sample 的 Amazon ECR 映像。此任务中的容器将继承来自 arn:aws:iam::123456789012:role/AmazonECSTaskS3BucketRole 角色的 IAM 权限。有关更多信息,请参阅 任务的 IAM 角色

Copy
{ "containerDefinitions": [ { "name": "sample-app", "image": "123456789012.dkr.ecr.us-west-2.amazonaws.com/aws-nodejs-sample:v1", "memory": "200", "cpu": "10", "essential": true } ], "family": "example_task_3", "taskRoleArn": "arn:aws:iam::123456789012:role/AmazonECSTaskS3BucketRole" }

带命令的入口点

以下示例演示使用入口点和命令参数的 Docker 容器的语法。此容器将对 google.com 执行四次 ping 操作,然后退出。

Copy
{ "containerDefinitions": [ { "memory": 32, "essential": true, "entryPoint": [ "ping" ], "name": "alpine_ping", "readonlyRootFilesystem": true, "image": "alpine:3.4", "command": [ "-c", "4", "google.com" ], "cpu": 16 } ], "family": "example_task_2" }