

# Amazon ECS 容器元数据文件
<a name="container-metadata"></a>

从 Amazon ECS 容器代理版本 1.15.0 开始，容器或主机容器实例中提供了各种容器元数据。通过启用此功能，您可以从容器或主机容器实例中查询有关任务、容器以及容器实例的信息。元数据文件是在主机实例上创建的，并作为Docker卷装入容器中，因此在 AWS Fargate上承载任务时不可用。

清除容器时，主机实例上的容器元数据文件将被清除。在这种情况下，您可以使用 `ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION` 容器代理变量进行调整。有关更多信息，请参阅 [Amazon ECS 任务和映像自动清理](automated_image_cleanup.md)。

**Topics**
+ [容器元数据文件位置](#metadata-file-locations)
+ [开启 Amazon ECS 容器元数据](enable-metadata.md)
+ [Amazon ECS 容器元数据文件格式](metadata-file-format.md)

## 容器元数据文件位置
<a name="metadata-file-locations"></a>

默认情况下，容器元数据文件写入到以下主机和容器路径。
+ **对于 Linux 实例：**
  + 主机路径：`/var/lib/ecs/data/metadata/cluster_name/task_id/container_name/ecs-container-metadata.json`
**注意**  
Linux 主机路径假定在启动代理时使用默认数据目录挂载路径（`/var/lib/ecs/data`）。如果您并非使用经 Amazon ECS 优化的 AMI（或 `ecs-init` 程序包来启动和维护容器代理），请确保将 `ECS_HOST_DATA_DIR` 代理配置变量设置为容器代理状态文件所在的主机路径。有关更多信息，请参阅 [Amazon ECS 容器代理配置](ecs-agent-config.md)。
  + 容器路径：`/opt/ecs/metadata/random_ID/ecs-container-metadata.json`
+ **对于 Windows 实例：**
  + 主机路径：`C:\ProgramData\Amazon\ECS\data\metadata\task_id\container_name\ecs-container-metadata.json`
  + 容器路径：`C:\ProgramData\Amazon\ECS\metadata\random_ID\ecs-container-metadata.json`

但是为了便于访问，容器元数据文件位置设置为容器内的 `ECS_CONTAINER_METADATA_FILE` 环境变量。您可以使用以下命令读取容器中的文件内容：
+ **对于 Linux 实例：**

  ```
  cat $ECS_CONTAINER_METADATA_FILE
  ```
+ **对于 Windows 实例（PowerShell）：**

  ```
  Get-Content -path $env:ECS_CONTAINER_METADATA_FILE
  ```