Amazon Elastic Container Service
开发人员指南 (API Version 2014-11-13)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

自动化任务和映像清除

每次将任务放在一个容器实例上时,Amazon ECS 容器代理都会检查该任务中引用的映像是否为存储库中的指定标记的最新版本。如果不是,它将从各个映像存储库中拉取映像。如果频繁更新任务和服务中的映像,则容器实例存储可能很快会被没在使用并且可能再也不会使用的 Docker 镜像填满。例如,如果您使用了连续集成和连续部署 (CI/CD) 管道。

同样,属于已停止任务的容器也可能会通过日志信息、数据卷和其他项目消耗容器实例存储空间。这些项目对于调试意外停止的容器很有用,但此存储的大部分空间在一段时间后可以安全地释放。

默认情况下,Amazon ECS 容器代理将自动清除已停止的任务和您的容器实例上的任何任务均未在使用的 Docker 镜像。

注意

自动映像清除功能要求 Amazon ECS 容器代理的版本最低为 1.13.0。要将您的代理更新至最新版本,请参阅更新 Amazon ECS 容器代理

可调节参数

以下代理配置变量可用于调整自动化任务和映像清除体验。有关如何在容器实例上设置这些变量的更多信息,请参阅 Amazon ECS 容器代理配置

ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION

此变量指定在删除属于已停止任务的任何容器前的等待时间。只要存在引用某个映像的容器,映像清除过程就无法删除该映像。当映像不再由任何容器(已停止或正在运行)引用后,则会变成清除的候选项。默认情况下,此参数设置为 3 小时,但如果您的应用程序有需要,您最多可以将此时间间缩短为 1 分钟。

ECS_DISABLE_IMAGE_CLEANUP

如果您将此变量设置为 true,则会在您的容器实例上禁用自动映像清除,且不会自动删除映像。

ECS_IMAGE_CLEANUP_INTERVAL

此变量指定自动映像清除过程应检查要删除的映像的频率。默认值为每 30 分钟一次,但您可以将此时间缩短至 10 分钟,以便更频繁地删除映像。

ECS_IMAGE_MINIMUM_CLEANUP_AGE

此变量指定拉取映像与映像可能变成删除的候选项之间的最短时间;这可用于防止清除刚刚拉取的映像。默认值为 1 小时。

ECS_NUM_IMAGES_DELETE_PER_CYCLE

此变量指定在一个清除周期内可以清除的映像数。默认值为 5,最小值为 1。

清除工作流程

当 Amazon ECS 容器代理正在运行且自动化映像清除未禁用时,该代理将按照 ECS_IMAGE_CLEANUP_INTERVAL 变量确定的频率,检查是否有未被正在运行或已停止的容器引用的 Docker 镜像。如果发现未使用的映像,并且这些映像的存在时间超过了 ECS_IMAGE_MINIMUM_CLEANUP_AGE 指定的最短清除时间,则该代理将删除由 ECS_NUM_IMAGES_DELETE_PER_CYCLE 变量指定的最大数量的映像。最早引用的映像会最先删除。在删除映像后,该代理将等到下一个时间间隔并重复上述流程。