返回

删除Harbor中无用镜像,释放存储空间

后端

释放存储空间,优化镜像管理

Harbor是一个流行的企业级私有镜像仓库,帮助开发团队存储和管理镜像。随着时间的推移,开发人员会创建大量的镜像,占用大量存储空间。一些镜像不再使用,但它们仍然占据着宝贵的磁盘空间。为了释放存储空间并优化镜像管理,需要定期删除无用的镜像。Harbor提供了一个API接口,可以用于批量删除镜像,从而简化和自动化这一过程。

使用Harbor API批量删除镜像

本节将介绍如何使用Harbor API批量删除镜像。我们将使用curl命令行工具,但您也可以使用其他支持HTTP请求的工具。

1. 准备工作

在开始之前,需要确保您具有Harbor管理员权限。还需要知道要删除的镜像的ID或名称。您可以通过Harbor的Web界面或API来查找镜像的ID或名称。

2. 获取Harbor API令牌

要使用Harbor API,需要获取一个API令牌。您可以通过Harbor的Web界面或API来创建API令牌。

3. 构建curl命令

现在,可以构建curl命令来删除镜像。命令的基本格式如下:

curl -X DELETE "http://harbor.example.com/api/v2.0/projects/project_name/repositories/repo_name/artifacts/artifact_id" -H "Authorization: Bearer {token}"

其中:

  • http://harbor.example.com:Harbor实例的URL。
  • project_name:要删除镜像的项目名称。
  • repo_name:要删除镜像的仓库名称。
  • artifact_id:要删除的镜像的ID。
  • {token}:Harbor API令牌。

例如,要删除名为my-project的项目中的my-repo仓库中的123456789镜像,可以构建以下命令:

curl -X DELETE "http://harbor.example.com/api/v2.0/projects/my-project/repositories/my-repo/artifacts/123456789" -H "Authorization: Bearer {token}"

4. 执行curl命令

使用以下命令执行curl命令:

curl -X DELETE "http://harbor.example.com/api/v2.0/projects/project_name/repositories/repo_name/artifacts/artifact_id" -H "Authorization: Bearer {token}"

如果命令执行成功,Harbor将返回一个200 OK响应码。

5. 批量删除镜像

如果需要批量删除镜像,可以使用以下步骤:

  1. 将要删除的镜像的ID或名称放入一个文本文件中。
  2. 使用以下命令执行curl命令:
curl -X DELETE "http://harbor.example.com/api/v2.0/projects/project_name/repositories/repo_name/artifacts/$(cat file.txt)" -H "Authorization: Bearer {token}"

其中:

  • file.txt:包含要删除的镜像的ID或名称的文本文件。

例如,要批量删除my-project项目中的my-repo仓库中的所有镜像,可以使用以下命令:

curl -X DELETE "http://harbor.example.com/api/v2.0/projects/my-project/repositories/my-repo/artifacts/$(cat file.txt)" -H "Authorization: Bearer {token}"

结语

通过使用Harbor API,您可以轻松地批量删除镜像,从而释放存储空间并优化镜像管理。这有助于确保Harbor的高效运行和合理的存储利用率。