azure - 清理 Service Fabric 群集上的旧 Docker 镜像

标签 azure azure-service-fabric

我有一个 Service Fabric 群集,上面有 5 个 Windows VM。我部署的应用程序是大约 10 个不同容器的集合。每次部署时,我都会使用内部版本号来增加容器的标签。例如:

foo.azurecr.io/api:50
foo.azurecr.io/web:50

我们的构建系统不断构建每个服务,对其进行标记,将其推送到 Azure,递增 ApplicationManifest.xml 文件中的所有图像,然后将应用程序部署到 Azure。我们可能每天都会构建几次新版本。

这很有效,但几周后,每个虚拟机上的磁盘空间就会被填满。这是因为每个虚拟机仍然拥有所有那些占用磁盘空间的旧 Docker 镜像。现在看,大约有 50 张旧图像。最终导致部署失败。

我的问题:是否有清理 Docker 镜像的标准方法?现在,我唯一的想法是创建某种 Windows Scheduler 任务,每天运行 docker image prune --all 等。但是,在某些时候,我们希望能够根据需要动态创建新的虚拟机,因此我希望每个虚拟机都是“库存”镜像。另一个想法是每次使用相同的标签,例如 api:latest 和 web:latest。但是,然后我必须找到一种方法让每个虚拟机发出 docker pull 命令来获取最新版本的镜像。

有人解决过这个问题吗?

最佳答案

您可以将 PruneContainerImages 配置为 True。这将使 Service Fabric 运行时能够删除未使用的容器镜像。请参阅this guide

关于azure - 清理 Service Fabric 群集上的旧 Docker 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53311039/

相关文章:

c# - 如何获取在azure Fabric服务中执行我的代码的节点的名称?

azure-service-fabric - Azure 中的 Service Fabric 群集只能通过 VPN 网关访问

c# - Azure服务总线: proxying topic subscription listeners

sql-server - SQL Azure 现在支持 newsequentialid

azure-service-fabric - 如何指定本地开发人员的服务结构集群的创建位置?

c# - 将云服务 Web 角色迁移到具有存储依赖项的 Service Fabric

azure-service-fabric - 服务结构 : removed actors and now upgrade fails

azure - 浏览部署在 Azure 中的 Angular 8 应用程序时出错

java - Cucumber HTML 报告输出出现意外格式

c# - 对逻辑应用程序中的 Azure Function 故障使用react