删除 Artifacts

Harbor v2.0 现在支持 OCI 镜像和 OCI 镜像索引 ( OCI 镜像索引规范)。OCI 镜像索引(或 OCI 索引)是一个更高级别的清单,它指向一个镜像清单列表,非常适合一个或多个平台。索引本身和其中引用的镜像在 Harbor 术语中都称为 artifacts。一个 OCI 索引可以包含另一个 OCI 索引,依此类推。对于 OCI 索引引用的任何 artifact,被引用的 artifact 被称为子 artifact,而引用该 artifact 的 OCI 索引被称为父 artifact。我们也可以说子 artifact 属于父 artifact 或父 artifact 的一部分。

OCI 镜像索引的示例

{
  "schemaVersion": 2,
  "manifests": [
    {
      "mediaType": "application/vnd.oci.image.manifest.v1+json",
      "size": 7143,
      "digest": "sha256:e692418e4cbaf90ca69d05a66403747baa33ee08806650b51fab815ad7fc331f",
      "platform": {
        "architecture": "ppc64le",
        "os": "linux"
      }
    },
    {
      "mediaType": "application/vnd.oci.image.manifest.v1+json",
      "size": 7682,
      "digest": "sha256:5b0bcabd1ed22e9fb1310cf6c2dec7cdef19f0ad69efa1f392e94a4333501270",
      "platform": {
        "architecture": "amd64",
        "os": "linux"
      }
    }
  ],
  "annotations": {
    "com.example.key1": "value1",
    "com.example.key2": "value2"
  }
}

删除 Artifact:

当 artifact 没有被任何 OCI 索引引用时,您可以自由删除该 artifact,这将删除其清单和所有关联的标签。

当 artifact 被 OCI 索引引用时,您无法删除它。为了删除此 artifact,您必须首先删除所有引用此 artifact 的 OCI 索引,请记住,一个 artifact 可以被推送至 Harbor 的不同用户的多个父 artifact 引用。因此,当删除一个包含 9 个未被任何其他索引引用的子 artifact 和 1 个被另一个索引引用的子 artifact 的 OCI 索引时,只有 10 个子 artifact 中的 9 个将被删除。

要在 Harbor 界面中删除任何 artifact,请单击该 artifact 并选择“删除”并确认。

delete image1

delete image2