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.

ecs-cli compose

说明

在 ECS 集群上利用 docker-compose 式命令管理 Amazon ECS 任务。

注意

要使用 Amazon ECS CLI 创建 Amazon ECS 服务,请参阅 ecs-cli compose service

ecs-cli compose 命令使用 Docker 复合文件创建任务定义和管理任务。此时,最新版本的 Amazon ECS CLI 支持 Docker 复合文件语法版本 1 和 2。默认情况下,此命令将在当前目录中查找一个名为 docker-compose.yml 的复合文件。但是,您也可以使用 --file 选项指定复合文件的其他文件名或路径。这在使用 Amazon ECS CLI 一次性管理多个复合文件中的任务和服务时特别有用。

ecs-cli compose 命令将项目名称与其创建的任务定义和服务结合使用。当 CLI 从复合文件创建任务定义时,任务定义将称为 ecscompose-project-name。当 CLI 从复合文件创建服务时,服务将称为 ecscompose-service-project-name。默认情况下,项目名称是当前工作目录的名称。但是,您也可以使用 --project-name 选项指定自己的项目名称。

注意

Amazon ECS CLI 只能管理使用 CLI 创建的任务、服务和容器实例。要管理并非使用 Amazon ECS CLI 创建的任务、服务和容器实例,请使用 AWS Command Line Interface 或 AWS 管理控制台。

Amazon ECS CLI 的复合文件中支持以下参数:

  • command

  • cpu_shares

  • dns

  • dns_search

  • entrypoint

  • environment:如果复合文件中未指定环境变量值,但该值存在于 shell 环境中,则 shell 环境变量值将传递到为任何关联的任务或服务创建的任务定义。

    重要

    建议不要对敏感信息 (如凭证数据) 使用纯文本环境变量。

  • env_file

    重要

    建议不要对敏感信息 (如凭证数据) 使用纯文本环境变量。

  • extra_hosts

  • hostname

  • image

  • labels

  • links

  • log_driver

  • log_opt

  • mem_limit (以字节为单位)

  • ports

  • privileged

  • read_only

  • security_opt

  • ulimits

  • user

  • volumes

  • volumes_from

  • working_dir

重要

此时不支持 build 指令。

有关 Docker 复合文件语法的更多信息,请参阅 Docker 文档中的复合文件参考

语法

ecs-cli compose [--verbose] [--file compose-file] [--project-name project-name] [--task-role-arn role_value] [--cluster cluster_name] [--region region] [subcommand] [arguments] [--help]

选项

名称 描述

--verbose, --debug

提高命令输出的详细程度以帮助诊断。

必需:否

--file, -f compose-file

指定要使用的 Docker 复合文件。此时,最新版本的 Amazon ECS CLI 支持 Docker 复合文件语法版本 1 和 2。 如果在 ecs-cli compose 运行时设置 COMPOSE_FILE 环境变量,则 Docker 复合文件将设置为该环境变量的值。

类型:字符串

默认值: ./docker-compose.yml

必需:否

--project-name, -p project-name

指定要使用的项目名称。如果在运行 ecs-cli compose 时设置 COMPOSE_PROJECT_NAME 环境变量,则项目名称将设置为该环境变量的值。

类型:字符串

默认值:当前目录名。

必需:否

--cluster, -c cluster_name

Specifies the ECS cluster name to use. Defaults to the cluster configured using the configure command.

Type: String

Required: No

--region, -r region

Specifies the AWS region to use. Defaults to the cluster configured using the configure command.

Type: String

Required: No

--help, -h

显示指定命令的帮助文本。

必需:否

可用子命令

ecs-cli compose 命令支持以下子命令:

create

从复合文件创建 ECS 任务定义。

pslist

列出集群中由构成项目启动的所有容器。

run [containerName] ["command ..."] ...

使用为容器提供的一次性命令来启动覆盖命令的所有容器。

scale n

将正在运行的任务数扩展至指定计数。

start

从通过复合文件创建的任务定义启动单个任务。

stopdown

停止由构成项目创建的所有正在运行的任务。

up

从复合文件创建 ECS 任务定义(如果该任务定义不存在)并在集群上运行该任务的一个实例(createstart 的组合)

service [subcommand]

从复合文件创建 ECS 服务。有关更多信息,请参阅 ecs-cli compose service

帮助

显示指定命令的帮助文本。

示例

示例 1

此示例从 hello-world 复合文件创建项目名称为 hello-world.yml 的任务定义。

Copy
ecs-cli compose --project-name hello-world --file hello-world.yml create

输出:

INFO[0000] Using ECS task definition                     TaskDefinition=ecscompose-hello-world:5