メニュー
Amazon EC2 Container Service
開発者ガイド (API Version 2014-11-13)

タスク定義パラメーター

タスク定義は、タスクファミリ、IAM タスクロール、コンテナ定義、ボリュームの 4 つの基本部分に分かれています。ファミリはタスクの名前であり、各ファミリに複数のリビジョンを含めることもできます。IAM タスクロールでは、タスクのコンテナに必要なアクセス権限を指定します。コンテナ定義では、使用するイメージ、コンテナの CPU とメモリの割り当て量のほか、多くのオプションを指定します。ボリュームでは、コンテナ間でデータを共有したり、コンテナが実行中でないときでもコンテナインスタンスにデータを保持したりすように指定します。ファミリとコンテナ定義はタスク定義に必須ですが、タスクロール、ネットワークモード、ボリュームはオプションです。

ファミリー

family

タイプ: 文字列

必須: はい

タスク定義を登録するときに、ファミリ (複数バージョンのタスク定義の名前のようなもの) を指定する必要があります。登録したタスク定義には、リビジョン番号が与えられます。特定のファミリに登録した最初のタスク定義には、リビジョン 1 が与えられ、その後に登録したタスク定義には、リビジョン 2 というように続きます。

タスクロール

taskRoleArn

タイプ: 文字列

必須: いいえ

タスク定義を登録するときに、IAM タスクロールを割り当てて、タスクのコンテナに、関連するポリシーに指定された AWS API を呼び出すためのアクセス権限を付与できます。詳細については、「タスク用の IAM ロール」を参照してください。

ネットワークモード

networkMode

タイプ: 文字列

必須: いいえ

タスク定義を登録するときに、そのコンテナで使用する Docker ネットワーキングモードを指定できます。デフォルトの Docker ネットワークモードは bridge です。ネットワークモードを none に設定した場合、コンテナ定義にポートマッピングを指定することはできず、タスクのコンテナに外部接続がなくなります。host ネットワークモードでは、コンテナのネットワークパフォーマンスは最大限に高まります。bridge モードとは異なり、仮想化ネットワークスタックではなく、ホストネットワークスタックを使用するためです。ただし、公開されるコンテナポートは対応するホストポートに直接マッピングされるため、ポートマッピングが使用されている場合は、1 つのコンテナインスタンスで同じタスクの複数のインスタンスを実行することはできません。

コンテナ定義

タスク定義を登録するときは、コンテナインスタンスの Docker デーモンに渡されるコンテナ定義のリストを指定する必要があります。以下のパラメーターをコンテナ定義で使用できます。

標準のコンテナ定義のパラメーター

以下のタスク定義のパラメーターは必須であるか、ほとんどのコンテナ定義で使用されます。

name

タイプ: 文字列

必須: はい

コンテナの名前。タスク定義で複数のコンテナをリンクする場合、あるコンテナの name を別のコンテナの links に入力してコンテナを接続できます。最大 255 文字の英字(大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。 このパラメータは、Docker Remote APIコンテナを作成する セクションの namedocker run--name オプションにマッピングされます。

image

タイプ: 文字列

必須: はい

コンテナの開始に使用するイメージ。この文字列は Docker デーモンに直接渡されます。Docker Hub レジストリのイメージはデフォルトで使用できます。repository-url/image:tag で他のリポジトリを指定することもできます。最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコア、コロン、ピリオド、スラッシュ、シャープ記号を使用できます。 このパラメーターは、Docker Remote APIコンテナを作成する セクションの Image と、docker runIMAGE パラメーターにマッピングされます。

  • Amazon ECR リポジトリ内のイメージには、完全な registry/repository:tag 命名規則が使用されます。たとえば、aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest です。

  • Docker ハブの公式リポジトリのイメージでは、1 つの名前 (例: ubuntumongo) を使用します。

  • Docker ハブの他のリポジトリのイメージは、組織名で修飾されます (例: amazon/amazon-ecs-agent)。

  • 他のオンラインリポジトリのイメージは、さらにドメイン名で修飾されます (例: quay.io/assemblyline/ubuntu)。

memory

タイプ: 整数

必須: いいえ

コンテナに適用されるメモリのハード制限 (MiB 単位)。コンテナは、ここで指定したメモリを超えようとすると、強制終了されます。このパラメータは、Docker Remote APIコンテナを作成する セクションの Memorydocker run--memory オプションにマッピングされます。

コンテナ定義で memorymemoryReservation の一方または両方を 0 以外の整数を指定する必要があります。両方を指定する場合、memorymemoryReservation より大きいことが必要です。memoryReservation を指定する場合、コンテナが配置されているコンテナインスタンスの使用可能なメモリリソースからその値が減算されます。それ以外の場合は、memory の値が使用されます。

Docker デーモンによってコンテナ用に 4 MiB 以上のメモリが予約されるため、コンテナ用に 4 MiB 未満のメモリを指定しないでください。

memoryReservation

タイプ: 整数

必須: いいえ

コンテナ用に予約するメモリのソフト制限 (MiB 単位)。システムメモリが競合している場合、Docker はコンテナメモリをこのソフト制限に維持しようとします。ただし、コンテナは必要に応じて、memory パラメーターで指定したハード制限 (該当する場合)、またはコンテナインスタンスの使用可能なメモリの、いずれか先に達するまで、追加のメモリを消費できます。このパラメータは、Docker Remote APIコンテナを作成する セクションの MemoryReservationdocker run--memory-reservation オプションにマッピングされます。

コンテナ定義で memorymemoryReservation の一方または両方を 0 以外の整数を指定する必要があります。両方を指定する場合、memorymemoryReservation より大きいことが必要です。memoryReservation を指定する場合、コンテナが配置されているコンテナインスタンスの使用可能なメモリリソースからその値が減算されます。それ以外の場合は、memory の値が使用されます。

たとえば、コンテナが通常 128 MiB のメモリを使用しているが、短期間に 256 MiB のメモリにバーストする場合は、memoryReservation を 128 MiB に、memory ハード制限を 300 MiB に設定できます。この設定により、コンテナは、コンテナインスタンスの残りのリソースから 128 MiB のメモリのみを確保できますが、必要に応じて追加のメモリリソースを消費できるようにもなります。

portMappings

タイプ: オブジェクト配列

必須: いいえ

ポートマッピングにより、コンテナはホストコンテナインスタンス上のポートにアクセスしてトラフィックを送受信できるようになります。このパラメータは、Docker Remote APIコンテナを作成する セクションの PortBindingsdocker run--publish オプションにマッピングされます。タスク定義のネットワークモードを none に設定している場合、ポートマッピングを指定することはできません。タスク定義のネットワークモードを host に設定している場合、ホストポートは未定義であるか、ポートマッピングのコンテナポートと一致する必要があります。

注記

タスクが RUNNING ステータスに達すると、手動および自動で割り当てられたホストポートとコンテナポートが、Amazon ECS コンソールで選択したタスクのコンテナ定義の [Network Bindings] セクションに表示されるか、[describe-tasks] AWS CLI コマンド出力または DescribeTasks API 応答の [networkBindings] セクションに表示されます。

hostPort

タイプ: 整数

必須: いいえ

コンテナ用に予約するコンテナインスタンスのポート番号。予約されていないホストポートをコンテナポートマッピングに指定できます (これは静的ホストポートマッピングと呼ばれます)。または、containerPort の指定時に hostPort を省略することもできます (または 0 に設定できます)。後者の場合、コンテナインスタンスのオペレーティングシステムと Docker バージョンに、一時ポート範囲のポートが自動的に割り当てられます (これは動的ホストポートマッピングと呼ばれます)。

デフォルトの一時ポート範囲は 49153 〜 65535 で、この範囲は 1.6.0 より前の Docker バージョンで使用されます。Docker バージョン 1.6.0 以降では、Docker デーモンは /proc/sys/net/ipv4/ip_local_port_range の一時ポート範囲 (最新の Amazon ECS 最適化 AMI では 32768 ~ 61000) を読み取ろうとします。このカーネルパラメータが使用できない場合は、デフォルトの一時ポート範囲が使用されます。一時ポート範囲のホストポートを指定しようとしないでください。これらのポートは自動割り当て用に予約されているためです。一般的に、32768 より小さい番号のポートは一時ポート範囲に含まれません。

デフォルトの予約済みポートは、SSH 用の 22、Docker ポートの 2375 および 2376、Amazon ECS コンテナエージェントポートの 51678 です。実行中のタスク用にユーザーが以前に指定したホストポートもそのタスクの実行中は予約されます (タスクが停止すると、そのホストポートは解放されます)。現在予約されているポートは、describe-container-instances 出力の remainingResources に表示されます。コンテナインスタンスには、デフォルトの予約済みポートを含めて、一度に最大 100 個の予約済みポートを割り当てることができます (自動的に割り当てられるポートは、この 100 個の予約済みポート制限にはカウントされません)。

containerPort

タイプ: 整数

必須: はい (portMappings を使用する場合)

ユーザーが指定したホストポートまたは自動的に割り当てられたホストポートにバインドされるコンテナポートの番号。ホストポートではなくコンテナポートを指定した場合、コンテナには一時ポート範囲内のホストポートが自動的に割り当てられます (詳細については「hostPort」を参照)。この方法で自動的にマッピングされるポートは、コンテナインスタンスの 100 個の予約済みポート制限にはカウントされません。

protocol

タイプ: 文字列

必須: いいえ

ポートマッピングに使用されるプロトコル。有効な値は、tcp および udp です。デフォルト: tcp

重要

UDP サポートは、バージョン 1.2.0 以降の Amazon ECS コンテナエージェント (amzn-ami-2015.03.c-amazon-ecs-optimized AMI など)、またはバージョン 1.3.0 以降に更新したコンテナエージェントで起動されたコンテナインスタンスでのみ可能です。コンテナエージェントを最新バージョンに更新するには、「Amazon ECS コンテナエージェントの更新」を参照してください。

ホストポートを指定する場合は、以下の構文を使用します。

"portMappings": [
    {
        "containerPort": integer,
        "hostPort": integer
    }
    ...
]

自動的に割り当てられるホストポートが必要な場合は、以下の構文を使用します。

"portMappings": [
    {
        "containerPort": integer
    }
    ...
]

詳細コンテナ定義パラメーター

以下の詳細コンテナ定義パラメーターにより、Amazon ECS コンテナインスタンスでのコンテナの起動に使用する docker run コマンドに拡張機能が追加されます。

環境

cpu

タイプ: 整数

必須: いいえ

コンテナ用に予約する cpu ユニットの数。コンテナインスタンスには、CPU コアごとに 1,024 個の cpu ユニットがあります。このパラメーターは、コンテナ用に予約する CPU の最小数を指定します。これにより、そのコンテナとインスタンス上の他のコンテナには、未割り当ての CPU ユニットが、割り当て済みの CPU ユニットと同じ比率で配分されます。このパラメータは、Docker Remote APIコンテナを作成する セクションの CpuSharesdocker run--cpu-shares オプションにマッピングされます。

注記

[Amazon EC2 Instances] 詳細ページのインスタンスタイプに一覧表示されている vCPU 数に 1,024 を乗算して、Amazon EC2 インスタンスタイプごとに使用可能な CPU ユニットの数を判断できます。

たとえば、単一コンテナタスクを単一コアインスタンスタイプで実行する場合、そのコンテナ用に 512 個の CPU ユニットを指定しており、そのタスクがコンテナインスタンスで実行される唯一のタスクであると、そのコンテナは 1,024 個の CPU ユニット配分すべてをいつでも使用できます。ただし、そのコンテナインスタンスで同じタスクの別のコピーを起動した場合、必要に応じてタスクごとに最低 512 個の CPU ユニットが確保され、各コンテナは最大 CPU ユニット配分を使用できますが (他方のコンテナが使用していない限り)、両方のタスクが常に 100% アクティブであれば、使用できるのは 512 個の CPU ユニットに制限されます。

コンテナインスタンス上の Docker デーモンは、CPU 値を使用して、実行中のコンテナに対する相対 CPU 配分比率を計算します。詳細については、Docker ドキュメントの「CPU 配分の制約」を参照してください。Linux カーネルに有効な最小 CPU 配分値は 2 です。ただし、CPU パラメーターは必須ではなく、コンテナ定義で 2 未満の CPU 値を使用できます。CPU 値が 2 未満の場合 (null を含む)、動作は Amazon ECS コンテナエージェントのバージョンによって異なります。

  • Agent versions <= 1.1.0: Null と 0 の CPU 値は Docker に 0 として渡され、Docker はそれを 1,024 個の CPU 配分に変換します。1 の CPU 値は Docker に 1 として渡され、Linux カーネルはそれを 2 個の CPU 配分に変換します。

  • Agent versions >= 1.2.0: Null、0、1 の CPU 値は Docker に 2 として渡されます。

essential

タイプ: ブール値

必須: いいえ

コンテナの essential パラメーターが true とマークされている場合、そのコンテナが何らかの理由で失敗または停止すると、タスクに含まれる他のすべてのコンテナは停止されます。コンテナの essential パラメーターが false とマークされている場合、その失敗はタスクに含まれる残りのコンテナに影響を与えません。このパラメーターを省略した場合、コンテナは必須と見なされます。

すべてのタスクには少なくとも 1 つの必須のコンテナが必要です。アプリケーションが複数のコンテナで構成される場合は、用途が共通するコンテナをコンポーネントにグループ化し、それらのコンポーネントを複数のタスク定義に分ける必要があります。詳細については、「アプリケーションのアーキテクチャ」を参照してください。

"essential": true|false
entryPoint

重要

初期のバージョンの Amazon ECS コンテナエージェントは、entryPoint パラメーターを正しく処理しません。entryPoint の使用時に問題が発生する場合は、コンテナエージェントを更新するか、代わりに command 配列項目としてコマンドと引数を入力します。

タイプ: 文字列配列

必須: いいえ

コンテナに渡されるエントリポイント。このパラメータは、Docker Remote APIコンテナを作成する セクションの Entrypointdocker run--entrypoint オプションにマッピングされます。Docker ENTRYPOINT パラメーターの詳細については、https://docs.docker.com/engine/reference/builder/#entrypoint を参照してください。

"entryPoint": ["string", ...]
command

タイプ: 文字列配列

必須: いいえ

コンテナに渡すコマンド。このパラメーターは、Docker Remote APIコンテナを作成する セクションの Cmd と、docker runCOMMAND パラメーターにマッピングされます。Docker CMD パラメーターの詳細については、https://docs.docker.com/engine/reference/builder/#cmd を参照してください。

"command": ["string", ...]
workingDirectory

タイプ: 文字列

必須: いいえ

コンテナ内でコマンドを実行する作業ディレクトリ。このパラメータは、Docker Remote APIコンテナを作成する セクションの WorkingDirdocker run--workdir オプションにマッピングされます。

"workingDirectory": "string"
environment

タイプ: オブジェクト配列

必須: いいえ

コンテナに渡す環境変数。このパラメータは、Docker Remote APIコンテナを作成する セクションの Envdocker run--env オプションにマッピングされます。

重要

認証情報データなどの機密情報にプレーンテキストの環境変数を使用することはお勧めしません。

name

タイプ: 文字列

必須: はい (environment を使用する場合)

環境変数の名前。

value

タイプ: 文字列

必須: はい (environment を使用する場合)

環境変数の値。

"environment" : [
    { "name" : "string", "value" : "string" },
    { "name" : "string", "value" : "string" }
]

ネットワーク設定

disableNetworking

タイプ: ブール値

必須: いいえ

このパラメーターが true のとき、ネットワーキングはコンテナ内で無効になります。このパラメーターは、Docker Remote APIコンテナを作成する セクションの NetworkDisabled にマッピングされます。

"disableNetworking": true|false
links

タイプ: 文字列配列

必須: いいえ

link パラメーターでは、コンテナがポートマッピングを必要とせずに互いに通信することを許可します。name:internalName 構造体は Docker リンクの name:alias に似ています。最大 255 文字の英字(大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。 Docker コンテナのリンクの詳細については、https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/ を参照してください。このパラメータは、Docker Remote APIコンテナを作成する セクションの Linksdocker run--link オプションにマッピングされます。

重要

1 つのコンテナインスタンスに配置されたコンテナは、リンクやホストポートマッピングを必要とせずに互いに通信できる場合があります。セキュリティグループと VPC 設定を使用して、コンテナインスタンスでネットワークを分離します。

"links": ["name:internalName", ...]
hostname

タイプ: 文字列

必須: いいえ

コンテナに使用するホスト名。このパラメータは、Docker Remote APIコンテナを作成する セクションの Hostnamedocker run--hostname オプションにマッピングされます。

"hostname": "string"
dnsServers

タイプ: 文字列配列

必須: いいえ

コンテナに渡す DNS サーバーのリスト。このパラメータは、Docker Remote APIコンテナを作成する セクションの Dnsdocker run--dns オプションにマッピングされます。

"dnsServers": ["string", ...]
dnsSearchDomains

タイプ: 文字列配列

必須: いいえ

コンテナに渡す DNS 検索ドメインのリスト。このパラメータは、Docker Remote APIコンテナを作成する セクションの DnsSearchdocker run--dns-search オプションにマッピングされます。

"dnsSearchDomains": ["string", ...]
extraHosts

タイプ: オブジェクト配列

必須: いいえ

コンテナ上の /etc/hosts ファイルに追加する、ホスト名と IP アドレスのマッピングのリスト。このパラメータは、Docker Remote APIコンテナを作成する セクションの ExtraHostsdocker run--add-host オプションにマッピングされます。

"extraHosts": [
      {
        "hostname": "string",
        "ipAddress": "string"
      }
      ...
    ]
hostname

タイプ: 文字列

必須: はい (extraHosts を使用する場合)

/etc/hosts エントリで使用するホスト名。

ipAddress

タイプ: 文字列

必須: はい (extraHosts を使用する場合)

/etc/hosts エントリで使用する IP アドレス。

ストレージとログ記録

readonlyRootFilesystem

タイプ: ブール値

必須: いいえ

このパラメーターが true のとき、コンテナはそのルートファイルシステムへの読み取り専用アクセスを許可されます。このパラメータは、Docker Remote APIコンテナを作成する セクションの ReadonlyRootfsdocker run--read-only オプションにマッピングされます。

"readonlyRootFilesystem": true|false
mountPoints

タイプ: オブジェクト配列

必須: いいえ

コンテナでのデータボリュームのマウントポイント。このパラメータは、Docker Remote APIコンテナを作成する セクションの Volumesdocker run--volume オプションにマッピングされます。

sourceVolume

タイプ: 文字列

必須: はい (mountPoints を使用する場合)

マウントするボリュームの名前。

containerPath

タイプ: 文字列

必須: はい (mountPoints を使用する場合)

ホストボリュームをマウントするコンテナ上のパス。

readOnly

タイプ: ブール値

必須: いいえ

この値が true の場合、コンテナはボリュームへの読み取り専用アクセスを許可されます。この値が false の場合、コンテナはボリュームに書き込むことができます。デフォルト値は false です。

"mountPoints": [
                {
                  "sourceVolume": "string",
                  "containerPath": "string",
                  "readOnly": true|false
                }
              ]
volumesFrom

タイプ: オブジェクト配列

必須: いいえ

別コンテナからマウントするデータボリューム。このパラメータは、Docker Remote APIコンテナを作成する セクションの VolumesFromdocker run--volumes-from オプションにマッピングされます。

sourceContainer

タイプ: 文字列

必須: はい (volumesFrom を使用する場合)

ボリュームのマウント元のコンテナの名前。

readOnly

タイプ: ブール値

必須: いいえ

この値が true の場合、コンテナはボリュームへの読み取り専用アクセスを許可されます。この値が false の場合、コンテナはボリュームに書き込むことができます。デフォルト値は false です。

"volumesFrom": [
                {
                  "sourceContainer": "string",
                  "readOnly": true|false
                }
              ]
logConfiguration

タイプ: LogConfiguration オブジェクト

必須: いいえ

コンテナのログ設定の仕様。このパラメータは、Docker Remote APIコンテナを作成する セクションの LogConfigdocker run--log-driver オプションにマッピングされます。デフォルトでは、コンテナは Docker デーモンと同じロギングドライバーを使用します。ただし、コンテナ定義でこのパラメーターを使用してロギングドライバーを指定することで、コンテナは Docker デーモンとは異なるロギングドライバーを使用できます。コンテナに異なるロギングドライバーを使用するには、コンテナインスタンス (またはリモートログ記録オプションの別のログサーバー) でログシステムを適切に設定する必要があります。サポートされているさまざまなロギングドライバーのオプションの詳細については、Docker ドキュメントの「ロギングドライバーの設定」を参照してください。

タスク定義で awslogs ロギングドライバーを使用してコンテナログを CloudWatch Logs に送信する方法の詳細については、「awslogs ログドライバーを使用する」を参照してください。

注記

Amazon ECS では現在、Docker デーモンの使用可能なロギングドライバーがいくつかサポートされています (以下の有効な値を参照)。Amazon ECS コンテナエージェントの今後のリリースで他のログドライバーが追加される可能性があります。

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance.

注記

コンテナインスタンスで実行される Amazon ECS コンテナエージェントは、ECS_AVAILABLE_LOGGING_DRIVERS 環境変数を使用して、そのインスタンスで使用できるロギングドライバーを登録する必要があります。その後、そのインスタンスに配置されたコンテナがこれらのログ設定オプションを使用できるようになります。詳細については、「Amazon ECS コンテナエージェントの設定」を参照してください。

"logConfiguration": {
      "logDriver": "json-file"|"syslog"|"journald"|"gelf"|"fluentd"|"awslogs"|"splunk",
      "options": {"string": "string"
        ...}
logDriver

タイプ: 文字列

有効な値: "json-file" | "syslog" | "journald" | "gelf" | "fluentd" | "awslogs" | "splunk"

必須: はい (logConfiguration を使用する場合)

コンテナに使用するログドライバー。上記の有効な値は、Amazon ECS コンテナエージェントがデフォルトで通信できるロギングドライバーです。

注記

上記に示されていないカスタムドライバーを Amazon ECS コンテナエージェントで使用する場合は、Amazon ECS コンテナエージェントプロジェクトを GitHub で入手し、そのドライバーを使用するようにカスタマイズできます。含めることを希望する変更について、プルリクエストを送信することをお勧めします。ただし、現在 Amazon Web Services はこのソフトウェアの修正されたコピーの実行をサポートしていません。

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance.

options

タイプ: 文字列間のマッピング

必須: いいえ

ログドライバーに送信する設定オプション。

This parameter requires version 1.19 of the Docker Remote API or greater on your container instance.

セキュリティ

privileged

タイプ: ブール値

必須: いいえ

このパラメーターが true のとき、コンテナには、ホストコンテナインスタンスに対する昇格されたアクセス権限 (root ユーザーと同様) が付与されます。このパラメータは、Docker Remote APIコンテナを作成する セクションの Privilegeddocker run--privileged オプションにマッピングされます。

"privileged": true|false
user

タイプ: 文字列

必須: いいえ

コンテナ内で使用するユーザー名。このパラメータは、Docker Remote APIコンテナを作成する セクションの Userdocker run--user オプションにマッピングされます。

"user": "string"
dockerSecurityOptions

タイプ: 文字列配列

必須: いいえ

SELinux と AppArmor のマルチレベルセキュリティシステムのカスタムラベルになる文字列のリスト。このパラメータは、Docker Remote APIコンテナを作成する セクションの SecurityOptdocker run--security-opt オプションにマッピングされます。

"dockerSecurityOptions": ["string", ...]

注記

コンテナインスタンスで実行される Amazon ECS コンテナエージェントは、ECS_SELINUX_CAPABLE=true または ECS_APPARMOR_CAPABLE=true 環境変数を使用してセキュリティシステムを登録する必要があります。その後、そのインスタンスに配置されたコンテナがこれらのセキュリティオプションを使用できるようになります。詳細については、「Amazon ECS コンテナエージェントの設定」を参照してください。

リソースの制限

ulimits

タイプ: オブジェクト配列

必須: いいえ

コンテナで設定する ulimits のリスト。このパラメータは、Docker Remote APIコンテナを作成する セクションの Ulimitsdocker run--ulimit オプションにマッピングされます。

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance.

"ulimits": [
      {
        "name": "core"|"cpu"|"data"|"fsize"|"locks"|"memlock"|"msgqueue"|"nice"|"nofile"|"nproc"|"rss"|"rtprio"|"rttime"|"sigpending"|"stack",
        "softLimit": integer,
        "hardLimit": integer
      }
      ...
    ]
name

タイプ: 文字列

有効な値: "core" | "cpu" | "data" | "fsize" | "locks" | "memlock" | "msgqueue" | "nice" | "nofile" | "nproc" | "rss" | "rtprio" | "rttime" | "sigpending" | "stack"

必須: はい (ulimits を使用する場合)

ulimittype

hardLimit

タイプ: 整数

必須: はい (ulimits を使用する場合)

ulimit タイプのハード制限。

softLimit

タイプ: 整数

必須: はい (ulimits を使用する場合)

ulimit タイプのソフト制限。

Docker のラベル

dockerLabels

タイプ: 文字列間のマッピング

必須: いいえ

コンテナに追加するラベルのキー/値マップ。このパラメータは、Docker Remote APIコンテナを作成する セクションの Labelsdocker run--label オプションにマッピングされます。

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance.

"dockerLabels": {"string": "string"
      ...}

タスク配置の制約事項

タスク定義の登録時、Amazon ECS でのタスク配置方法をカスタマイズするタスク配置の制約を指定できます。たとえば、アベイラビリティーゾーン、インスタンスタイプ、または属性に基づいたタスク配置の制約を使用できます。詳細については、「Amazon ECS タスク配置の制約事項」を参照してください。以下のパラメーターをコンテナ定義で使用できます。

expression

タイプ: 文字列

必須: いいえ

制約に適用されるクラスタークエリ言語式。制約タイプが distinctInstance である場合は、式を指定できないことに注意してください。詳細については、「クラスタークエリ言語」を参照してください。

type

タイプ: 文字列

必須: はい

制約事項のタイプ。選択を有効な候補グループに制約するには、memberOf を使用します。distinctInstance はタスク定義ではサポートされないことに注意してください。

ボリューム

タスク定義を登録するとき、コンテナインスタンスの Docker デーモンに渡されるボリュームのリストをオプションで指定すると、それらのボリュームをアクセス先の同じコンテナインスタンス上の他のコンテナで使用できるようになります。詳細については、「タスクでのデータボリュームの使用」を参照してください。以下のパラメーターをコンテナ定義で使用できます。

name

タイプ: 文字列

必須: はい

ボリュームの名前。最大 255 文字の英字(大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。 この名前は、コンテナ定義 mountPointssourceVolume パラメーターで参照されます。

host

タイプ: オブジェクト

必須: いいえ

host パラメーターの内容により、データボリュームがホストコンテナインスタンスで保持されるかどうか、保持される場合はその場所が決まります。host パラメーターが空の場合、Docker デーモンはデータボリュームのホストパスを割り当てますが、関連付けられたコンテナの実行が停止した後にデータが保持されるとは限りません。

デフォルトでは、Docker 管理ボリュームは /var/lib/docker/vfs/dir/ に作成されます。このデフォルトの場所は、OPTIONS="-g=/my/path/for/docker/volumes" をコンテナインスタンス上の /etc/sysconfig/docker に書き換えることで変更できます。

sourcePath

タイプ: 文字列

必須: いいえ

コンテナに渡すホストコンテナインスタンス上のパス。このパラメーターが空の場合は、Docker デーモンによってホストパスが割り当てられます。

host パラメーターに sourcePath の場所が含まれている場合、データボリュームは手動で削除するまでホストコンテナインスタンスの指定された場所に保持されます。sourcePath の場所がホストコンテナインスタンスに存在しない場は、Docker デーモンによって作成されます。その場所が存在する場合は、ソースパスフォルダーの内容がエクスポートされます。

[
  {
    "name": "string",
    "host": {
      "sourcePath": "string"
    }
  }
]