A private v2 repository has been created on its server. It became necessary to clean it, i.e. remove very old versions of images. The documentation says to delete it like this:

curl -v -X DELETE https://user:passwd@docker.my-rep.ru:5000/v2/bkf/sdf/manifests/1 

And here is the error:

 {"errors":[{"code":"UNSUPPORTED","message":"The operation is unsupported."}]} 

At the same time the GET command with the same request is executed with a bang.

Tell me where to dig?

  • And in response that, he should answer something? - Webaib
  • HTTP/1.1 405 Method Not Allowed. Now it remains to find out how to turn it on? I set it up without a configuration file - Anton Vorob'v

1 answer 1

Through the search found where to store the current configuration configuration registry

 find / | grep config.yml 

I have this:

 /var/lib/docker/aufs/mnt/c14810bbf0311d4d53261635ef75f425c725f7ad61e64f3e046cc1c46051da18/etc/docker/registry/config.yml 

Add 2 lines to this file:

 version: 0.1 log: fields: service: registry storage: cache: blobdescriptor: inmemory filesystem: rootdirectory: /var/lib/registry + delete: + enabled: true http: addr: :5000 headers: X-Content-Type-Options: [nosniff] health: storagedriver: enabled: true interval: 10s threshold: 3 

The image is deleted by its digest, i.e. on sha256:7a36321d3ec343da43cc886d52011f5b8c822b1d474fb2cc397faf681a4136eb

I managed to find this parameter only when I downloaded the image from the repository and at the end this parameter was displayed.

As another option, I found a script that deletes images in the repository https://github.com/burnettk/delete-docker-registry-image

Before its execution, you must specify where the repository is located.

 export REGISTRY_DATA_DIR=/var/lib/docker/volumes/5126f8d31aa3a620a5e27694ce88cf67b21f3044bce0dc45066f64c354026d6d/_data/docker/registry/v2/ 

After that, you can run a script indicating which image you want to delete.

 delete_docker_registry_image --image bkf/sdf:1