我感觉像是一个相当标准的ECS部署:
现在好几次我已经去部署一个新的服务实例,只是让ECS不高兴,因为它无法在我的EC2实例上找到新图像的空间 - 我得到“设备上没有空间”错误在CloudWatch中。
如果我通过SSH连接到实例,我发现它有我所有Docker镜像和容器的旧副本 - 几乎100个前者,500个后者。我可以通过手动运行docker rm
和docker rmi
命令来释放磁盘空间,但我天真地认为这是ECS为我管理的事情。
当我设置服务和任务时,我通常不会与单个主机或容器进行交互 - 我相信ECS会为我安排容器。我预计它也会清除旧的容器映像,以根据需要释放磁盘空间。 (我知道这不是Docker提供的功能。)
我可以设置警报来监控我的EC2实例上的磁盘空间,并根据需要登录到可用磁盘空间 - 但我想知道我是否错过了什么。
我可以告诉ECS从我的EC2实例中清除旧的/未使用的容器[图像]吗?
答案 0 :(得分:6)
是的!自版本1.13.0起,ECS代理已自动清除旧的未使用的图像。您可以在the README中查看默认设置并了解如何自定义它们(请查看ECS_IMAGE_CLEANUP_INTERVAL
,ECS_IMAGE_MINIMUM_CLEANUP_AGE
和ECS_NUM_IMAGES_DELETE_PER_CYCLE
。