AWS::ECS::TaskDefinition ContainerDefinition
ContainerDefinition
プロパティは、コンテナ定義を指定します。コンテナ定義は、タスク定義で使用され、タスクの一部として起動されるさまざまなコンテナを記述します。
構文
AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。
JSON
{ "Command" :
[ String, ... ]
, "Cpu" :Integer
, "DependsOn" :[ ContainerDependency, ... ]
, "DisableNetworking" :Boolean
, "DnsSearchDomains" :[ String, ... ]
, "DnsServers" :[ String, ... ]
, "DockerLabels" :{
, "DockerSecurityOptions" :Key
:Value
, ...}[ String, ... ]
, "EntryPoint" :[ String, ... ]
, "Environment" :[ KeyValuePair, ... ]
, "EnvironmentFiles" :[ EnvironmentFile, ... ]
, "Essential" :Boolean
, "ExtraHosts" :[ HostEntry, ... ]
, "FirelensConfiguration" :FirelensConfiguration
, "HealthCheck" :HealthCheck
, "Hostname" :String
, "Image" :String
, "Interactive" :Boolean
, "Links" :[ String, ... ]
, "LinuxParameters" :LinuxParameters
, "LogConfiguration" :LogConfiguration
, "Memory" :Integer
, "MemoryReservation" :Integer
, "MountPoints" :[ MountPoint, ... ]
, "Name" :String
, "PortMappings" :[ PortMapping, ... ]
, "Privileged" :Boolean
, "PseudoTerminal" :Boolean
, "ReadonlyRootFilesystem" :Boolean
, "RepositoryCredentials" :RepositoryCredentials
, "ResourceRequirements" :[ ResourceRequirement, ... ]
, "Secrets" :[ Secret, ... ]
, "StartTimeout" :Integer
, "StopTimeout" :Integer
, "SystemControls" :[ SystemControl, ... ]
, "Ulimits" :[ Ulimit, ... ]
, "User" :String
, "VolumesFrom" :[ VolumeFrom, ... ]
, "WorkingDirectory" :String
}
YAML
Command:
- String
Cpu:Integer
DependsOn:- ContainerDependency
DisableNetworking:Boolean
DnsSearchDomains:- String
DnsServers:- String
DockerLabels:DockerSecurityOptions:
Key
:Value
- String
EntryPoint:- String
Environment:- KeyValuePair
EnvironmentFiles:- EnvironmentFile
Essential:Boolean
ExtraHosts:- HostEntry
FirelensConfiguration:FirelensConfiguration
HealthCheck:HealthCheck
Hostname:String
Image:String
Interactive:Boolean
Links:- String
LinuxParameters:LinuxParameters
LogConfiguration:LogConfiguration
Memory:Integer
MemoryReservation:Integer
MountPoints:- MountPoint
Name:String
PortMappings:- PortMapping
Privileged:Boolean
PseudoTerminal:Boolean
ReadonlyRootFilesystem:Boolean
RepositoryCredentials:RepositoryCredentials
ResourceRequirements:- ResourceRequirement
Secrets:- Secret
StartTimeout:Integer
StopTimeout:Integer
SystemControls:- SystemControl
Ulimits:- Ulimit
User:String
VolumesFrom:- VolumeFrom
WorkingDirectory:String
プロパティ
Command
-
コンテナに渡すコマンド。このパラメータは、Docker Remote API
の Create a container セクションの Cmd
にマップされ、COMMAND
パラメータは docker runにマップされます。詳細については、https://docs.docker.com/engine/reference/builder/#cmd を参照してください。複数の引数がある場合、各引数は配列において区切られた文字列である必要があります。 必須: いいえ
タイプ: 文字列のリスト
Update requires: Replacement
Cpu
-
コンテナ用に予約されている
cpu
ユニットの数。このパラメータは、Docker Remote APIの Create a container セクションの CpuShares
にマップされ、--cpu-shares
オプションは docker runにマップされます。 Fargate 起動タイプを使用するタスクでは、このフィールドはオプションです。その場合、タスク内のすべてのコンテナ用に予約される CPU の合計量が、タスクレベルの
cpu
の値を下回ることが唯一の要件となります。注記 [Amazon EC2 インスタンス
] 詳細ページのインスタンスタイプに一覧表示されている vCPU 数に 1,024 を乗算して、EC2 インスタンスタイプごとに使用可能な CPU ユニットの数を判断できます。 Linux コンテナは、割り当てられた CPU ユニットと同じ比率を使用して、割り当てられていない CPU ユニットをコンテナインスタンス上の他コンテナと共有します。たとえば、単一コンテナタスクを単一コアインスタンスタイプで実行する場合、そのコンテナ用に 512 個の CPU ユニットを指定しており、そのタスクがコンテナインスタンスで実行される唯一のタスクであると、そのコンテナは 1,024 個の CPU ユニット配分すべてをいつでも使用できます。ただし、そのコンテナインスタンスで同じタスクの別のコピーを起動した場合、必要に応じてタスクごとに最低 512 個の CPU ユニットが確保され、各コンテナは最大 CPU ユニット配分を使用できますが (他方のコンテナが使用していない限り)、両方のタスクが常に 100% アクティブであれば、使用できるのは 512 個の CPU ユニットに制限されます。
Linux コンテナインスタンスでは、コンテナインスタンス上の Docker デーモンは、CPU 値を使用して、実行中のコンテナに対する相対 CPU 配分比率を計算します。詳細については、Docker ドキュメントの「CPU 配分の制約
」を参照してください。Linux kernel が許可する CPU の有効な最小共有値は 2 です。ただし、CPU のパラメータは必要なく、コンテナ定義で 2 以下の CPU 値を使用できます。CPU 値が 2 未満の場合 (null を含む)、動作は Amazon ECS コンテナエージェントのバージョンによって異なります。 -
エージェントのバージョンが 1.1.0 以下である: Null と 0 の CPU 値は Docker に 0 として渡され、Docker はそれを 1,024 個の CPU 配分に変換します。1 の CPU 値は Docker に 1 として渡され、Linux カーネルはそれを 2 個の CPU 配分に変換します。
-
エージェントのバージョンが 1.2.0 以上である: Null、0、1 の CPU 値は Docker に 2 として渡されます。
Windows コンテナインスタンスでは、CPU 制限は絶対制限またはクォータとして適用されます。Windows コンテナはタスク定義で指定された一定量の CPU にのみアクセスします。ヌルまたはゼロの CPU 値は
0
として Docker に渡され、これを Windows は 1 つの CPU の 1% として解釈します。必須: いいえ
タイプ: 整数
Update requires: Replacement
-
DependsOn
-
コンテナの起動と停止に定義されている依存関係。コンテナには複数の依存関係を含めることができます。依存関係がコンテナの起動に対して定義されている場合、コンテナの停止の場合、依存関係は逆になります。
EC2 起動タイプを使用するタスクでは、コンテナインスタンスはコンテナの依存関係を有効にするために、コンテナエージェントのバージョン 1.26.0 以上を必要とします。ただし、最新のコンテナエージェントのバージョンを使用することをお勧めします。エージェントのバージョンの確認と最新バージョンへの更新の詳細については、Amazon Elastic Container Service 開発者ガイドの「Amazon ECS コンテナエージェントの更新」を参照してください。Amazon ECS 対応 Linux AMI を使用している場合、インスタンスでは、
ecs-init
パッケージの 1.26.0-1 バージョン以上が必要です。コンテナインスタンスがバージョン20190301
以降から起動される場合、コンテナエージェントおよびecs-init
の必要なバージョンが含まれます。詳細については、Amazon Elastic Container Service 開発者ガイドの「Amazon ECS に最適化された Linux AMI」を参照してください。Fargate 起動タイプを使用するタスクの場合、タスクまたはサービスにはプラットフォームバージョン
1.3.0
以降が必要です。必須: いいえ
タイプ: ContainerDependency のリスト
Update requires: Replacement
DisableNetworking
-
このパラメータが true のとき、ネットワーキングはコンテナ内で無効になります。このパラメータは、Docker Remote API
の Create a container (コンテナを作成する) セクションの NetworkDisabled
にマッピングされます。注記 このパラメータは、Windows コンテナや、awsvpc ネットワークモードを使用するタスクではサポートされていません。
必須: いいえ
タイプ: ブール値
Update requires: Replacement
DnsSearchDomains
-
コンテナに渡す DNS 検索ドメインのリスト。このパラメータは、Docker Remote API
の Create a container セクションの DnsSearch
にマップされ、--dns-search
オプションは docker runにマップされます。 注記 このパラメータは、Windows コンテナや、awsvpc ネットワークモードを使用するタスクではサポートされていません。
必須: いいえ
タイプ: 文字列のリスト
Update requires: Replacement
DnsServers
-
コンテナに渡す DNS サーバーのリスト。このパラメータは、Docker Remote API
の Create a container セクションの Dns
にマップされ、--dns
オプションは docker runにマップされます。 注記 このパラメータは、Windows コンテナや、awsvpc ネットワークモードを使用するタスクではサポートされていません。
必須: いいえ
タイプ: 文字列のリスト
Update requires: Replacement
DockerLabels
-
コンテナに追加するラベルのキー/値マップ。このパラメータは、Docker Remote API
の Create a container セクションの Labels
にマップされ、--label
オプションは docker runにマップされます。このパラメータは、コンテナインスタンスで Docker Remote API バージョン 1.18 以上を使用する必要があります。コンテナインスタンスの Docker Remote API のバージョンを確認するには、コンテナインスタンスにログインし、 sudo docker version --format '{{.Server.APIVersion}}'
コマンドを実行します。必須: いいえ
タイプ: 文字列のマップ
Update requires: Replacement
DockerSecurityOptions
-
SELinux と AppArmor のマルチレベルセキュリティシステムのカスタムラベルになる文字列のリスト。このフィールドは、Fargate 起動タイプを使用するタスク内のコンテナには無効です。
Windows コンテナでは、Active Directory 認証用にコンテナを構成するときに、このパラメータを使用して認証情報仕様ファイルを参照できます。詳細については、Amazon Elastic Container サービス開発者ガイドの「Windows コンテナでの gMSA の使用」を参照してください。
このパラメータは、Docker Remote API
の Create a container セクションの SecurityOpt
にマップされ、--security-opt
オプションは docker runにマップされます。 注記 コンテナインスタンスで実行される Amazon ECS コンテナエージェントは、
ECS_SELINUX_CAPABLE=true
またはECS_APPARMOR_CAPABLE=true
環境変数を使用してセキュリティシステムを登録する必要があります。その後、そのインスタンスに配置されたコンテナがこれらのセキュリティオプションを使用できるようになります。詳細については、Amazon Elastic Container Service 開発者ガイドの「Amazon ECS コンテナエージェントの設定」を参照してください。有効な値の詳細については、「Docker Run Security Configration
」を参照してください。 Valid values: "no-new-privileges" | "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath"
必須: いいえ
タイプ: 文字列のリスト
Update requires: Replacement
EntryPoint
-
重要 初期のバージョンの Amazon ECS コンテナエージェントは、
entryPoint
パラメータを正しく処理しません。entryPoint
の使用時に問題が発生する場合は、コンテナエージェントを更新するか、代わりにcommand
配列項目としてコマンドと引数を入力します。コンテナに渡されるエントリポイント。このパラメータは、Docker Remote API
の Create a container セクションの Entrypoint
にマップされ、--entrypoint
オプションは docker runにマップされます。詳細については、https://docs.docker.com/engine/reference/builder/#entrypoint を参照してください。 必須: いいえ
タイプ: 文字列のリスト
Update requires: Replacement
Environment
-
コンテナに渡す環境変数。このパラメータは、Docker Remote API
の Create a container セクションの Env
にマップされ、--env
オプションは docker runにマップされます。 重要 認証情報データなどの機密情報にプレーンテキストの環境変数を使用することはお勧めしません。
必須: いいえ
タイプ: KeyValuePair のリスト
Update requires: Replacement
EnvironmentFiles
-
コンテナに渡す環境変数を含むファイルのリスト。このパラメータは、docker run
の --env-file
オプションにマッピングされます。最大 10 個の環境ファイルを指定できます。ファイルには、ファイル拡張子
.env
が必要です。環境ファイルの各行には、VARIABLE=VALUE
形式で環境変数が含まれている必要があります。#
で始まる行はコメントとして扱われ、無視されます。環境変数ファイルの構文の詳細については、「Declare default environment variables in file」を参照してください。 コンテナ定義に
environment
パラメータを使用して環境変数が指定されている場合は、環境ファイルに含まれる変数よりも優先されます。同じ変数を含む複数の環境ファイルが指定されている場合、それらのファイルは上から下に処理されます。一意の変数名を使用することをお勧めします。詳細については、Amazon Elastic Container Service デベロッパーガイドの「環境変数の指定」を参照してください。このフィールドは、Fargate 起動タイプを使用するタスク内のコンテナには無効です。
必須: いいえ
タイプ: EnvironmentFile のリスト
Update requires: Replacement
Essential
-
コンテナの
essential
パラメータがtrue
とマークされている場合、そのコンテナが何らかの理由で失敗または停止すると、タスクに含まれる他のすべてのコンテナは停止されます。コンテナのessential
パラメータがfalse
とマークされている場合、その失敗はタスクに含まれる残りのコンテナに影響を与えません。このパラメータを省略した場合、コンテナは必須と見なされます。すべてのタスクには少なくとも 1 つの必須のコンテナが必要です。アプリケーションが複数のコンテナで構成される場合は、用途が共通するコンテナをコンポーネントにグループ化し、それらのコンポーネントを複数のタスク定義に分ける必要があります。詳細については、Amazon Elastic Container Service 開発者ガイドの「アプリケーションのアーキテクチャ」を参照してください。
必須: いいえ
タイプ: ブール値
Update requires: Replacement
ExtraHosts
-
コンテナ上の
/etc/hosts
ファイルに追加する、ホスト名と IP アドレスのマッピングのリスト。このパラメータは、Docker Remote APIの Create a container セクションの ExtraHosts
にマップされ、--add-host
オプションは docker runにマップされます。 注記 このパラメータは Windows コンテナまたは、
awsvpc
ネットワークモードを使用するタスクではサポートされていません。必須: いいえ
タイプ: HostEntry のリスト
Update requires: Replacement
FirelensConfiguration
-
コンテナの FireLens 設定。これは、コンテナログのログルーターの指定と設定に使用されます。詳細については、Amazon Elastic Container Service 開発者ガイドの「カスタムログルーティング」を参照してください。
必須: いいえ
Update requires: Replacement
HealthCheck
-
コンテナヘルスチェックのコマンドおよびコンテナの関連する設定パラメータです。このパラメータは、Docker Remote API
の Create a container セクションの HealthCheck
および docker runの HEALTHCHECK
パラメータにマップされます。必須: いいえ
タイプ: HealthCheck
Update requires: Replacement
Hostname
-
コンテナに使用するホスト名。このパラメータは、Docker Remote API
の Create a container セクションの Hostname
にマップされ、--hostname
オプションは docker runにマップされます。 注記 awsvpc
ネットワークモードを使用している場合、hostname
パラメータはサポートされません。必須: いいえ
タイプ: 文字列
Update requires: Replacement
Image
-
コンテナの開始に使用するイメージ。この文字列は Docker デーモンに直接渡されます。Docker Hub レジストリのイメージはデフォルトで使用できます。他のリポジトリは
repository-url/image:tag
またはrepository-url/image@digest
で指定されます。最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコア、コロン、ピリオド、スラッシュ、シャープ記号を使用できます。このパラメータは、Docker Remote APIの Create a container セクションの Image
および docker runの IMAGE
パラメータにマップされます。-
新しいタスクが開始されると、Amazon ECS コンテナエージェントは、指定されたイメージおよびタグの最新バージョンをプルしてコンテナで使用します。ただし、リポジトリイメージの後続の更新がすでに実行されているタスクに反映されることはありません。
-
Amazon ECR リポジトリのイメージは、
registry/repository:tag
またはregistry/repository@digest
の完全な命名規則を使用して指定できます。例えば、012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest
、012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE
などです。 -
Docker ハブの公式リポジトリのイメージでは、1 つの名前 (例:
ubuntu
、mongo
) を使用します。 -
Docker ハブの他のリポジトリのイメージは、組織名で修飾されます (例:
amazon/amazon-ecs-agent
)。 -
他のオンラインリポジトリのイメージは、さらにドメイン名で修飾されます (例:
quay.io/assemblyline/ubuntu
)。
必須: いいえ
タイプ: 文字列
Update requires: Replacement
-
Interactive
-
このパラメータが
true
の場合、stdin
またはtty
を割り当てる必要がある、コンテナ化されたアプリケーションをデプロイすることができます。このパラメータは、Docker Remote APIの Create a container セクションの OpenStdin
にマップされ、--interactive
オプションは docker runにマップされます。 必須: いいえ
タイプ: ブール値
Update requires: Replacement
Links
-
links
パラメータでは、コンテナがポートマッピングを必要とせずに互いに通信することを許可します。このパラメータは、タスク定義のネットワークモードがbridge
に設定されている場合にのみサポートされます。name:internalName
構造体は Docker リンクのname:alias
に似ています。最大 255 文字の英字 (大文字と小文字)、数字、ハイフンを使用できます。Docker コンテナのリンクの詳細については、Docker ドキュメントの「Legacy container links」を参照してください。このパラメータは、Docker Remote API の Create a container セクションの Links
にマップされ、--link
オプションは docker runにマップされます。 注記 このパラメータは、Windows コンテナや、awsvpc ネットワークモードを使用するタスクではサポートされていません。
重要 1 つのコンテナインスタンスに配置されたコンテナは、リンクやホストポートマッピングを必要とせずに互いに通信できる場合があります。セキュリティグループと VPC 設定を使用して、コンテナインスタンスでネットワークを分離します。
必須: いいえ
タイプ: 文字列のリスト
Update requires: Replacement
LinuxParameters
-
Linux カーネル機能など、コンテナに適用される Linux 固有の変更。詳細については、「KernelCapabilities」を参照してください。
注記 このパラメータは Windows コンテナではサポートされません。
必須: いいえ
タイプ: LinuxParameters
Update requires: Replacement
LogConfiguration
-
コンテナのログ設定の仕様。
このパラメータは、Docker Remote API
の Create a container (コンテナを作成する) セクションの LogConfig
にマップされ、--log-driver
オプションは docker runにマップされます。デフォルトでは、コンテナは Docker デーモンで使用されるのと同じロギングドライバーを使用します。ただし、コンテナで Docker デーモンとは異なるログドライバーを使用するには、コンテナの定義内でこのパラメータを使用してログドライバーを指定します。コンテナに異なるロギングドライバーを使用するには、コンテナインスタンス (またはリモートログ記録オプションの別のログサーバー) でログシステムを適切に設定する必要があります。サポートされているさまざまなロギングドライバーのオプションの詳細については、Docker ドキュメントの「ロギングドライバーの設定 」を参照してください。 注記 Amazon ECS では現在、Docker デーモンの使用可能なログドライバーがいくつかサポートされています (「LogConfiguration」データ型を参照)。Amazon ECS コンテナエージェントの今後のリリースで他のログドライバーが追加される可能性があります。
このパラメータは、コンテナインスタンスで Docker Remote API バージョン 1.18 以上を使用する必要があります。コンテナインスタンスの Docker Remote API のバージョンを確認するには、コンテナインスタンスにログインし、
sudo docker version --format '{{.Server.APIVersion}}'
コマンドを実行します。注記 コンテナインスタンスで実行される Amazon ECS コンテナエージェントは、
ECS_AVAILABLE_LOGGING_DRIVERS
環境変数を使用して、そのインスタンスで使用できるロギングドライバーを登録する必要があります。その後、そのインスタンスに配置されたコンテナがこれらのログ設定オプションを使用できるようになります。詳細については、Amazon Elastic Container Service 開発者ガイドの「Amazon ECS コンテナエージェントの設定」を参照してください。必須: いいえ
タイプ: LogConfiguration
Update requires: Replacement
Memory
-
コンテナに適用されるメモリの量 (MiB 単位)。コンテナは、ここで指定したメモリを超えようとすると、強制終了されます。タスク内のすべてのコンテナ用に予約されるメモリの合計量は、タスクの
memory
値より小さくする必要があります (指定されている場合)。このパラメータは、Docker Remote APIの Create a container セクションの Memory
にマップされ、--memory
オプションは docker runにマップされます。 Fargate 起動タイプを使用する場合、このパラメータはオプションです。
EC2 起動タイプを使用する場合、タスクレベルのメモリ値またはコンテナレベルのメモリ値を指定する必要があります。
memory
コンテナレベルとmemoryReservation
値の両方を指定する場合、memory
はmemoryReservation
より大きくする必要があります。memoryReservation
を指定する場合、コンテナが配置されているコンテナインスタンスの使用可能なメモリリソースからその値が減算されます。それ以外の場合は、memory
の値が使用されます。Docker デーモンによってコンテナ用に 4 MiB 以上のメモリが予約されるため、コンテナ用に 4 MiB 未満のメモリを指定しないでください。
必須: いいえ
タイプ: 整数
Update requires: Replacement
MemoryReservation
-
コンテナ用に予約するメモリのソフト制限 (MiB 単位)。システムメモリの競合が激しい場合、Docker はコンテナメモリをこのソフト制限値に維持しようとします。ただしコンテナは必要に応じて、
memory
パラメータで指定したハード制限 (該当する場合) に達するか、コンテナインスタンス上の使用可能なメモリの上限に達するか、いずれか早く達する方まで、メモリを使用できます。このパラメータは、Docker Remote APIの Create a container セクションの MemoryReservation
にマップされ、--memory-reservation
オプションは docker runにマップされます。 タスクレベルのメモリ値を指定しない場合、コンテナ定義で
memory
またはmemoryReservation
の一方または両方に 0 以外の整数を指定する必要があります。両方を指定する場合、memory
はmemoryReservation
より大きいことが必要です。memoryReservation
を指定する場合、コンテナが配置されているコンテナインスタンスの使用可能なメモリリソースからその値が減算されます。それ以外の場合は、memory
の値が使用されます。たとえば、コンテナが通常 128 MiB のメモリを使用しているが、短期間に 256 MiB のメモリにバーストする場合は、
memoryReservation
を 128 MiB に、memory
ハード制限を 300 MiB に設定できます。この設定により、コンテナは、コンテナインスタンスの残りのリソースから 128 MiB のメモリのみを確保できますが、必要に応じて追加のメモリリソースを消費できるようにもなります。Docker デーモンによってコンテナ用に 4 MiB 以上のメモリが予約されるため、コンテナ用に 4 MiB 未満のメモリを指定しないでください。
必須: いいえ
タイプ: 整数
Update requires: Replacement
MountPoints
-
コンテナでのデータボリュームのマウントポイント。
このパラメータは、Docker Remote API
の Create a container セクションの Volumes
にマップされ、--volume
オプションは docker runにマップされます。 Windows コンテナは
$env:ProgramData
と同じドライブに全部のディレクトリをマウントできます。Windows コンテナは、別のドライブにディレクトリをマウントできません。また、マウントポイントは複数のドライブにまたがることはできません。必須: いいえ
タイプ: MountPoint のリスト
Update requires: Replacement
Name
-
コンテナの名前。タスク定義で複数のコンテナをリンクする場合、あるコンテナの
name
を別のコンテナのlinks
に入力してコンテナを接続できます。最大 255 文字の英字 (大文字と小文字)、数字、ハイフンを使用できます。このパラメータは、Docker Remote APIの Create a container セクションの name
にマップされ、--name
オプションは docker runにマップされます。 必須: いいえ
タイプ: 文字列
Update requires: Replacement
PortMappings
-
コンテナのポートマッピングのリスト。ポートマッピングにより、コンテナはホストコンテナインスタンス上のポートにアクセスしてトラフィックを送受信できるようになります。
awsvpc
ネットワークモードを使用するタスク定義では、containerPort
のみを指定する必要があります。hostPort
は、空白のままにするか、containerPort
と同じ値にする必要があります。Windows のポートマッピングでは、
localhost
の代わりにNetNAT
ゲートウェイを使用します。Windows のポートマッピングにはループバックが存在しないため、ホスト自体からコンテナのマッピングされたポートにアクセスすることはできません。このパラメータは、Docker Remote API
の「Create a container 」セクションの PortBindings
にマップされ、--publish
オプションは docker runにマップされます。タスク定義のネットワークモードを none
に設定している場合、ポートマッピングを指定することはできません。タスク定義のネットワークモードをhost
に設定している場合、ホストポートは未定義であるか、ポートマッピングのコンテナポートと一致する必要があります。注記 タスクが
RUNNING
ステータスに達すると、手動および自動のホストとコンテナポートの割り当てが、Amazon ECS コンソールの選択したタスクのコンテナ説明の [Network Bindings (ネットワークバインド)] セクションに表示されます。割り当ては、networkBindings
セクションの DescribeTasks レスポンスにも表示されます。必須: いいえ
タイプ: PortMapping のリスト
Update requires: Replacement
Privileged
-
このパラメータが true のとき、コンテナには、ホストコンテナインスタンスに対する昇格されたアクセス権限 (
root
ユーザーと同様) が付与されます。このパラメータは、Docker Remote APIの Create a container セクションの Privileged
にマップされ、--privileged
オプションは docker runにマップされます。 注記 このパラメータは、Fargate 起動タイプを使用する Windows コンテナまたはタスクではサポートされていません。
必須: いいえ
タイプ: ブール値
Update requires: Replacement
PseudoTerminal
-
このパラメータが
true
の場合、TTY が割り当てられます。このパラメータは、Docker Remote APIの Create a container セクションの Tty
にマップされ、--tty
オプションは docker runにマップされます。 必須: いいえ
タイプ: ブール値
Update requires: Replacement
ReadonlyRootFilesystem
-
このパラメータが true のとき、コンテナはそのルートファイルシステムへの読み取り専用アクセスを許可されます。このパラメータは、Docker Remote API
の Create a container セクションの ReadonlyRootfs
にマップされ、--read-only
オプションは docker runにマップされます。 注記 このパラメータは、Windows コンテナや、awsvpc ネットワークモードを使用するタスクではサポートされていません。
必須: いいえ
タイプ: ブール値
Update requires: Replacement
RepositoryCredentials
-
使用するプライベートリポジトリ認証資格情報。
必須: いいえ
Update requires: Replacement
ResourceRequirements
-
コンテナに割り当てるリソースのタイプと量。サポートされている唯一のリソースは GPU です。
必須: いいえ
タイプ: ResourceRequirement のリスト
Update requires: Replacement
Secrets
-
コンテナに渡すシークレット。詳細については、Amazon Elastic Container Service 開発者ガイドの「機密データの指定」を参照してください。
必須: いいえ
タイプ: Secret のリスト
Update requires: Replacement
StartTimeout
-
コンテナの依存関係解決の再試行を止めるまでの待機時間 (秒)。たとえば、タスク定義内に 2 つのコンテナを指定するとします。containerA は、
COMPLETE
、SUCCESS
、またはHEALTHY
のいずれかのステータスに到達する containerB に依存関係を持ちます。startTimeout
の値が containerB に指定されていて、時間内に目標のステータスを達成しない場合、containerA は再試行を開始しません。これにより、タスクはSTOPPED
ステータスに移行します。注記 ECS_CONTAINER_START_TIMEOUT
コンテナエージェントの設定変数を使用すると、この開始タイムアウト値から個別に変数が適用されます。Fargate 起動タイプを使用するタスクの場合、このパラメータにはタスクまたはサービスでプラットフォームバージョン 1.3.0 以降を使用する必要があります。
EC2 起動タイプを使用するタスクでは、コンテナインスタンスはコンテナの開始時刻の値を有効にするために、コンテナエージェントのバージョン
1.26.0
以降を必要とします。ただし、最新のコンテナエージェントのバージョンを使用することをお勧めします。エージェントのバージョンの確認と最新バージョンへの更新の詳細については、Amazon Elastic Container Service 開発者ガイドの「Amazon ECS コンテナエージェントの更新」を参照してください。Amazon ECS 対応 Linux AMI を使用している場合、インスタンスでは、ecs-init
パッケージの1.26.0-1
バージョン以降が必要です。コンテナインスタンスがバージョン20190301
以降から起動される場合、コンテナエージェントおよびecs-init
の必要なバージョンが含まれます。詳細については、Amazon Elastic Container Service 開発者ガイドの「Amazon ECS に最適化された Linux AMI」を参照してください。必須: いいえ
タイプ: 整数
Update requires: Replacement
StopTimeout
-
コンテナが正常に終了しなかった場合にコンテナが強制終了されるまでの待機時間 (秒)。
Fargate 起動タイプを使用するタスクの場合、タスクまたはサービスにはプラットフォームバージョン 1.3.0 以降が必要です。最大停止タイムアウト値は 120 秒です。パラメータを指定しない場合は、デフォルト値の 30 秒が使用されます。
EC2 起動タイプを使用するタスクでは、
stopTimeout
パラメータが指定されていない場合、Amazon ECS コンテナエージェント設定変数ECS_CONTAINER_STOP_TIMEOUT
に設定された値がデフォルトで使用されます。stopTimeout
パラメータまたはECS_CONTAINER_STOP_TIMEOUT
エージェント設定変数のいずれも設定されていない場合、Linux コンテナの場合は 30 秒、Windows コンテナの場合は 30 秒というデフォルト値が使用されます。コンテナインスタンスには、コンテナ停止タイムアウト値を有効にするために、コンテナエージェントのバージョン 1.26.0 以上が必要です。ただし、最新のコンテナエージェントのバージョンを使用することをお勧めします。エージェントのバージョンの確認と最新バージョンへの更新の詳細については、Amazon Elastic Container Service 開発者ガイドの「Amazon ECS コンテナエージェントの更新」を参照してください。Amazon ECS 対応 Linux AMI を使用している場合、インスタンスでは、ecs-init
パッケージの 1.26.0-1 バージョン以上が必要です。コンテナインスタンスがバージョン20190301
以降から起動される場合、コンテナエージェントおよびecs-init
の必要なバージョンが含まれます。詳細については、Amazon Elastic Container Service 開発者ガイドの「Amazon ECS に最適化された Linux AMI」を参照してください。必須: いいえ
タイプ: 整数
Update requires: Replacement
SystemControls
-
コンテナ内で設定する名前空間カーネルパラメータのリスト。このパラメータは、Docker Remote API
の Create a container セクションの Sysctls
にマップされ、--sysctl
オプションは docker runにマップされます。 注記 awsvpc
またはhost
ネットワークモードも使用する単一のタスクで、複数のコンテナに対してネットワーク関連のsystemControls
パラメータを指定することは推奨されません。awsvpc
ネットワークモードを使用するタスクの場合、最後に開始されたコンテナによって、どのsystemControls
パラメータが有効になるかが決まります。host
ネットワークモードを使用するタスクの場合、コンテナインスタンスの名前空間のカーネルパラメータとコンテナが変更されます。必須: いいえ
タイプ: SystemControl のリスト
Update requires: Replacement
Ulimits
-
コンテナで設定する
ulimits
のリスト。このパラメータは、Docker Remote APIの「Create a container 」セクションの Ulimits
にマップされ、--ulimit
オプションは docker runにマップされます。有効な命名値は Ulimit データ型で表示されます。このパラメータは、コンテナインスタンスで Docker Remote API バージョン 1.18 以上を使用する必要があります。コンテナインスタンスの Docker Remote API のバージョンを確認するには、コンテナインスタンスにログインし、 sudo docker version --format '{{.Server.APIVersion}}'
コマンドを実行します。注記 このパラメータは Windows コンテナではサポートされません。
必須: いいえ
タイプ: Ulimit のリスト
Update requires: Replacement
User
-
コンテナ内で使用するユーザー名。このパラメータは、Docker Remote API
の Create a container セクションの User
にマップされ、--user
オプションは docker runにマップされます。 以下のフォーマットを使用できます。UID または GID を指定する場合は、正の整数として指定する必要があります。
-
user
-
user:group
-
uid
-
uid:gid
-
user:gid
-
uid:group
注記 このパラメータは、Windows コンテナや、awsvpc ネットワークモードを使用するタスクではサポートされていません。
必須: いいえ
タイプ: 文字列
Update requires: Replacement
-
VolumesFrom
-
別コンテナからマウントするデータボリューム。このパラメータは、Docker Remote API
の Create a container セクションの VolumesFrom
にマップされ、--volumes-from
オプションは docker runにマップされます。 必須: いいえ
タイプ: VolumeFrom のリスト
Update requires: Replacement
WorkingDirectory
-
コンテナ内でコマンドを実行する作業ディレクトリ。このパラメータは、Docker Remote API
の Create a container セクションの WorkingDir
にマップされ、--workdir
オプションは docker runにマップされます。 必須: いいえ
タイプ: 文字列
Update requires: Replacement