You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS ECS集群Active运行但ECR镜像误删 如何恢复集群内容文件

恢复方案

只要当前ECS集群上承载业务的实例/任务还处于正常运行状态、没有触发重建/销毁调度,完全可以从存活节点上把镜像、业务文件全部捞回,操作路径如下:

  • 优先从运行节点提取可用镜像,补全ECR仓库
    先定位到运行业务的集群节点:如果是EC2启动类型的集群,直接通过SSH登录对应EC2实例;如果是Fargate启动类型的任务,先通过ECS Exec功能进入容器环境。
    登录EC2节点后先查询运行中对应业务的容器ID:
    docker ps | grep 你的业务服务关键词
    拿到容器ID后,直接将运行中的容器提交为本地镜像:
    docker commit <对应容器ID> recovered-image:latest
    后续给本地镜像打上对应ECR仓库的标签,执行push操作就能把完整可用的镜像推回重建后的ECR仓库,不需要依赖原始源码或者已删除的ECR镜像。
    注意:这步操作要在集群触发实例重启、服务重调度、任务替换之前完成,一旦运行中的容器被销毁,节点本地缓存的镜像和运行态数据会被直接清除。
  • 直接提取容器内的业务文件,找回源码、配置
    不需要提取完整镜像也能单独导出容器内的文件:拿到运行中容器ID后,用docker cp命令直接把容器内的目标路径拷贝到宿主机本地即可,比如导出容器内/app路径下的全部业务代码、配置文件:
    docker cp <容器ID>:/app /opt/saved-business-files
    导出完成后就能在宿主机对应路径拿到所有运行态的业务代码、配置文件、甚至业务运行产生的持久化临时数据。如果是Fargate环境,进容器后先把需要的目录打包,再通过会话管理的文件传输能力导出即可。
  • 临时防护操作避免数据彻底丢失

    开始恢复操作前,先临时暂停对应服务的自动部署、自动伸缩、实例异常替换策略,避免恢复过程中存活的运行容器被调度销毁,等所有需要的镜像、文件全部导出备份完成后再恢复正常调度策略。
    所有内容恢复完成后,记得将导出的源码、配置提交到私有代码仓库做持久化存储,ECR镜像开启版本保留和跨区备份,不要将运行中的线上集群作为唯一数据存储载体。

内容的提问来源于stack exchange,提问作者kuollam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 13:36:23