azure - 清理 Service Fabric 群集上的旧 Docker 映像
问题描述
我有一个 Service Fabric 群集,上面有 5 个 Windows VM。我部署了一个包含大约 10 个不同容器的应用程序。每次部署时,我都会使用内部版本号增加容器的标签。例如:
foo.azurecr.io/api:50
foo.azurecr.io/web:50
我们的构建系统不断构建每个服务,对其进行标记,将其推送到 Azure,递增 ApplicationManifest.xml 文件中的所有图像,然后将应用程序部署到 Azure。我们可能一天会构建几次新版本。
这很好用,但在几周的时间里,每个 VM 上的磁盘空间都会被填满。这是因为每个 VM 仍然有所有那些旧的 Docker 映像占用磁盘空间。现在看,大约有 50 场旧图像坐在那里。最终,这导致部署失败。
我的问题:是否有清理 Docker 映像的标准方法?现在,我唯一的想法是创建某种docker image prune --all
每天运行的 Windows 调度程序任务。但是,在某些时候,我们希望能够根据需要动态创建新的虚拟机,所以我宁愿每个虚拟机都是“库存”映像。另一个想法是每次都使用相同的标签,例如api:latest
and web:latest
。但是,我必须想办法让每个 VM 发出docker pull
命令以获取最新版本的映像。
以前有没有人解决过这个问题?
解决方案
您可以配置PruneContainerImages
为True
. 这将使 Service Fabric 运行时能够删除未使用的容器映像。请参阅本指南
推荐阅读
- c# - Android:通过蓝牙将元数据从媒体播放器应用程序发送到汽车音响阻止广播接收器播放下一首歌曲或暂停音乐
- java - 增加彩信图片的宽度和高度
- javascript - 65536 处的 getSelection() 错误
- python - 获取在 Python 中调用方法的对象
- python - Matplotlib:所有组的堆积面积图
- c# - 如何在具有 MVC 5 的类库项目中使用 Entity Framework 6 Code First
- cron - 每个月按不同时区的国家/地区运行定期任务
- apache-kafka - Kafka ACL 导致主题复制失败
- c# - 在包含许多项目的 Excel 中查找总和为 0 的值
- android - 无法在 Android Studio 之外安装基于 CLI 构建的应用程序 - “删除失败”错误/base.apk 代码缺失