清理Service Fabric群集上的旧Docker映像

时间:2018-11-15 01:08:37

标签: azure azure-service-fabric

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

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

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

这很好用,但是在数周的时间内,每个VM上的磁盘空间已满。这是因为每个VM仍然具有所有那些旧的Docker映像占用磁盘空间。现在看,周围大约有50幅旧图像。最终,这导致部署失败。

我的问题:是否存在清理Docker映像的标准方法?现在,我唯一的想法是创建某种Windows Scheduler任务,该任务每天运行docker image prune --all。但是,在某些时候,我们希望能够根据需要即时创建新的VM,所以我宁愿每个VM都是一个“原始”映像。另一个想法是每次使用相同的标签,例如api:latestweb:latest。但是,然后,我必须想办法让每个VM发出docker pull命令以获取映像的最新版本。

以前有人解决过这个问题吗?

1 个答案:

答案 0 :(得分:1)

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