我有一个私人的Dockerregistry,v2.6.0,在图像上包含几个标记的版本:
foo/bar:1 foo/bar:1_keep (same image as 1) foo/bar:2 foo/bar:3 foo/bar:latest (same image as 3)
我想删除一个标签,而不必删除图像。 所以,如果我删除标签2,可以删除图像,因为没有别的指向它。 但是,如果我删除标签1,只有该标签应去,而不是图像。
这表明一个API请求是这样的:
DELETE http://repo/v2/foo/bar/tags/1
但是,这给了我一个404.相反,我必须删除清单,这意味着做所有的工作,检查它没有被其他标签使用。
我查看了https://github.com/fraunhoferfokus/deckschrubber的来源,看起来不麻烦检查删除手稿是否安全。 我错过了什么吗?
有没有更好的方法来做到这一点? 如果没有,为什么不,而且可能会被修复?
目前没有api删除特定的标签 。 理论上,您可以将新的(可能是空的)清单推送到现有的标记,然后删除它。 否则,您将需要跟踪清理例程中的所有标记和清单,以确定可以安全删除的内容。
目前有一个拉取请求(#2169)来修改标记API,包括删除标记的选项。 这是2.7版本的一个里程碑,所以这可能是未来增加的function。