Amazon ECS 容器元数据文件格式
以下信息存储在容器元数据 JSON 文件中。
Cluster
-
容器的任务在其上运行的集群的名称。
ContainerInstanceARN
-
主机容器实例的完整 Amazon Resource Name (ARN)。
TaskARN
-
容器所属的任务的完整 Amazon Resource Name (ARN)。
TaskDefinitionFamily
-
容器正在使用的任务定义系列的名称。
TaskDefinitionRevision
-
容器正在使用的任务定义修订版本。
ContainerID
-
容器的 Docker 容器 ID (而不是 Amazon ECS 容器 ID)。
ContainerName
-
容器 Amazon ECS 任务定义中的容器名称。
DockerContainerName
-
Docker 守护程序用于容器的容器名称(例如,docker ps 命令输出中显示的名称)。
ImageID
-
用于启动容器的 Docker 映像的 SHA 摘要。
ImageName
-
用于启动容器的 Docker 映像的映像名称和标签。
PortMappings
-
与容器关联的任何端口映射。
ContainerPort
-
公开的容器上的端口。
HostPort
-
公开的主机容器实例上的端口。
BindIp
-
Docker 分配给容器的绑定 IP 地址。此 IP 地址仅适用于
bridge
网络模式,只能从容器实例进行访问。 Protocol
-
用于端口映射的网络协议。
Networks
-
容器的网络模式和 IP 地址。
NetworkMode
-
容器所属的任务的网络模式。
IPv4Addresses
-
与容器关联的 IP 地址。
重要
如果您的任务使用的是
awsvpc
网络模式,则将不会返回容器的 IP 地址。在这种情况下,您可以通过使用以下命令读取 /etc/hosts 文件来检索 IP 地址:tail -1 /etc/hosts | awk '{print $1}'
MetadataFileStatus
-
元数据文件的状态。如果状态为
READY
,则元数据文件是最新状态且内容完整。如果文件尚未准备就绪 (例如在启动任务时),将会提供文件格式的截断版本。为了避免可能出现的竞用情况,比如已经启动容器,但尚未写入元数据,您可以解析元数据文件,并等待此参数设置为READY
,然后再使用元数据。这通常是在容器启动后的 1 秒内提供。 AvailabilityZone
-
主机容器实例所在的可用区。
HostPrivateIPv4Address
-
容器所属任务的私有 IP 地址。
HostPublicIPv4Address
-
容器所属任务的公有 IP 地址。
例 Amazon ECS 容器元数据文件 (READY
)
以下示例显示了处于 READY
状态的容器元数据文件。
{ "Cluster": "default", "ContainerInstanceARN": "arn:aws:ecs:us-west-2:012345678910:container-instance/default/1f73d099-b914-411c-a9ff-81633b7741dd", "TaskARN": "arn:aws:ecs:us-west-2:012345678910:task/default/2b88376d-aba3-4950-9ddf-bcb0f388a40c", "TaskDefinitionFamily": "console-sample-app-static", "TaskDefinitionRevision": "1", "ContainerID": "aec2557997f4eed9b280c2efd7afccdcedfda4ac399f7480cae870cfc7e163fd", "ContainerName": "simple-app", "CreatedAt": "2023-10-08T20:09:11.44527186Z", "StartedAt": "2023-10-08T20:09:11.44527186Z", "DockerContainerName": "/ecs-console-sample-app-static-1-simple-app-e4e8e495e8baa5de1a00", "ImageID": "sha256:2ae34abc2ed0a22e280d17e13f9c01aaf725688b09b7a1525d1a2750e2c0d1de", "ImageName": "httpd:2.4", "PortMappings": [ { "ContainerPort": 80, "HostPort": 80, "BindIp": "0.0.0.0", "Protocol": "tcp" } ], "Networks": [ { "NetworkMode": "bridge", "IPv4Addresses": ["192.0.2.0"] } ], "MetadataFileStatus": "READY", "AvailabilityZone": "us-east-1b", "HostPrivateIPv4Address": "192.0.2.0", "HostPublicIPv4Address": "203.0.113.0" }
例 未完成的 Amazon ECS 容器元数据文件 (尚未处于 READY
状态)
以下示例显示了尚未处于 READY
状态的容器元数据文件。文件中的信息仅限任务定义中已知的几个参数。容器元数据文件应在容器启动后的 1 秒内准备就绪。
{ "Cluster": "default", "ContainerInstanceARN": "arn:aws:ecs:us-west-2:012345678910:container-instance/default/1f73d099-b914-411c-a9ff-81633b7741dd", "TaskARN": "arn:aws:ecs:us-west-2:012345678910:task/default/d90675f8-1a98-444b-805b-3d9cabb6fcd4", "ContainerName": "metadata" }