首页 > 解决方案 > 推送更新的 docker 版本时,AWS ECR 层已经存在

问题描述

场景:创建了一个新的 ECR 私有仓库并成功推送了一个新的 docker。然后使用该 docker 映像来托管应用程序。现在应用程序需要一些更新的 API,所以:

  1. 对代码进行了更改。
  2. 按照 AWS 命令​​将更新的 docker 镜像推送到具有不同版本号的同一仓库中。此外,在创建 docker 时,我从我的 pc 中删除了本地 docker 图像并使用了 --no-cache 标记。

上传时,除了 1 层(大小约为 32 mb)外,所有层的层都已退出,它在 10 秒内被推送。在 ECR 上,我可以看到图像的新更新版本,其大小与以前的版本相同,但仅在 5.10 秒内推送了大约 32 mb 层。这是什么意思?我尝试了整个过程几次,随机一次它说所有层都已经存在层,除了 2。这次推送了一个具有适当图像大小(大约 330 mb)的层。

有人能解释一下用正确的图像推送更新 ECR 版本的最佳方法是什么吗?

标签: amazon-web-servicesdockerdocker-imageamazon-ecr

解决方案


这不是一个大问题,因为当我们谈论 docker 镜像时,它有多个构建层,所以当您在 aws ecr 上推送它时,它会在 ecr 存储库中推送多层镜像,当您更新更改并构建此镜像时在 ecr 中推送新版本的镜像它只推送 docker 镜像的更新层,因为其他层已经在您的 ecr 存储库中可用。我希望你明白这一点。


推荐阅读