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

示例任务定义

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

主题

    例 示例: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 存储库。

    { "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" }

    重要

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

    例 示例:awslogs 日志驱动程序

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

    { "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 角色

    { "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 操作,然后退出。

    { "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" }