¿Una forma fácil de eliminar una etiqueta de un registro privado de Docker?

Tengo un registro privado de Docker, v2. 6. 0, que contiene varias versiones etiquetadas en una imagen:

foo/bar:1foo/bar:1_keep    (same image as 1)foo/bar:2foo/bar:3foo/bar:latest    (same image as 3)

Quiero eliminar una sola etiqueta sin eliminar necesariamente la imagen. Entonces, si elimino la etiqueta 2, está bien eliminar la imagen porque nada más se refiere a ella. Pero si elimino la etiqueta 1, solo debería ir esa etiqueta, no la imagen.

Eso sugiere una solicitud de API como esta:

DELETE http://repo/v2/foo/bar/tags/1

Pero eso me da un 404. En su lugar, tengo que eliminar el manifiesto, lo que significa hacer todo el trabajo de verificar que no esté en uso por otra etiqueta.

Miré la fuente de https://github.com/fraunhoferfokus/deckschrubber y no parece molestarse en verificar que sea seguro eliminar un manuscrito. Me estoy perdiendo algo?

¿Hay una mejor manera de hacer esto? Si no, ¿por qué no, y es probable que se solucione?

Actualmente hay sin api para eliminar una etiqueta específica. En teoría, podría enviar un manifiesto nuevo (posiblemente vacío) a una etiqueta existente y luego eliminarlo. De lo contrario, querrá realizar un seguimiento de todas las etiquetas y manifiestos en su rutina de limpieza para identificar qué es seguro eliminar.


Actualizar:

La eliminación de etiquetas se agregó a now 1.0 Distribución OCI-especificaciones. Aquellos, solicitud de extracción (#3427) se aprobó para distribución / distribución, que es el flujo ascendente de la imagen de registro. Tiene un hito de la versión 3.0, por lo que esta puede ser una característica que se agregue en el futuro.

También he estado trabajando en regcliente que implementa la API de eliminación de etiquetas y recurre a enviar un manifiesto vacío y eliminarlo. Para una CLI, regclient incluye regctl, que se vería así:

regctl tag rm registry:5000/repo:tag