Help us learn about your current experience with the documentation. Take the survey.

减少容器镜像的依赖代理存储

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

对于 blobs 没有自动删除流程。除非手动删除,它们会无限期存储。本文介绍了几种清理缓存中未使用项的选项。

检查依赖代理存储使用情况

使用配额 页面显示容器镜像依赖代理的存储使用情况。

使用 API 清理缓存

要回收不再需要的镜像 blob 占用的磁盘空间,请使用 依赖代理 API 清理整个缓存。如果清理缓存,下次管道运行时必须从 Docker Hub 拉取镜像或标签。

清理策略

在 GitLab 内启用清理策略

您可以通过用户界面为容器镜像的依赖代理启用自动生存时间(TTL)策略。为此,转到您组的 设置 > 包和注册表 > 依赖代理, 并启用设置以在 90 天后自动清除缓存中的项目。

使用 GraphQL 启用清理策略

清理策略是一个计划任务,可用于清除不再使用的缓存镜像,释放额外的存储空间。这些策略使用生存时间(TTL)逻辑:

  • 配置天数。
  • 删除所有在指定天数内未被拉取的缓存依赖代理文件。

使用 GraphQL API 来启用和配置清理策略:

mutation {
  updateDependencyProxyImageTtlGroupPolicy(input:
    {
      groupPath: "<your-full-group-path>",
      enabled: true,
      ttl: 90
    }
  ) {
    dependencyProxyImageTtlPolicy {
      enabled
      ttl
    }
    errors
  }
}

请参阅 GraphQL 入门 指南,了解如何进行 GraphQL 查询。

策略首次启用时,默认 TTL 设置为 90 天。启用后,过期的依赖代理文件每天都会排队等待删除。由于处理时间,删除可能不会立即发生。如果在缓存文件被标记为过期后拉取镜像,则忽略这些过期文件,并从外部注册表下载并缓存新文件。