commit fdc38290406d2b9aabfc6ffefc2fc11dc16aa5f2 Author: Fabio Date: Tue Feb 25 23:56:30 2025 +0800 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..9aa1b18 --- /dev/null +++ b/README.md @@ -0,0 +1,48 @@ +# delete-docker-registry-image + +## Install + + curl https://raw.githubusercontent.com/burnettk/delete-docker-registry-image/master/delete_docker_registry_image.py | sudo tee /usr/local/bin/delete_docker_registry_image >/dev/null + sudo chmod a+x /usr/local/bin/delete_docker_registry_image + +## Run + +Set up your data directory via an environment variable: + + export REGISTRY_DATA_DIR=/opt/registry_data/docker/registry/v2 + +You can also just edit the script where this variable is set to make it work +for your setup. + +Almost delete a repo: + + delete_docker_registry_image --image testrepo/awesomeimage --dry-run + +Actually delete a repo (remember to shut down your registry first): + + delete_docker_registry_image --image testrepo/awesomeimage + +Delete one tag from a repo: + + delete_docker_registry_image --image testrepo/awesomeimage:supertag + + +## clean_old_versions.py + +This complimentary script is made to remove tags in repository based on +regexp pattern. + +Usage: + + ./clean_old_versions.py --image reg_exp_of_repository_to_find --include reg_exp_of_tag_to_find -l history_to_maintain --registry-url location_of_docker_registry -o tag_ordering -b only_tags_before_date -a only_tags_after_date + +Example: +Search for all images whose name start with 'repo/sitor' and delete all tags +whose name start with '0.1.' keeping the last 2 tags and of the remaining tags +deletes only those having an image creation time between January 1, 2016 12 a.m. +and June 25, 2016 12 p.m. (both datetimes are exclusive). + + ./clean_old_versions.py --image '^repo/sitor*' --include '^0.1.*' -l 2 -b 2016-06-25T12:00:00 -a 2016-01-01T00:00:00 --registry-url http://localhost:5000 + +Add `--dry-run` as argument for a test run without actual removal of tags. + diff --git a/config.yml b/config.yml new file mode 100644 index 0000000..45eaa0c --- /dev/null +++ b/config.yml @@ -0,0 +1,20 @@ +version: 0.1 +log: + fields: + service: registry +storage: + cache: + blobdescriptor: inmemory + filesystem: + rootdirectory: /var/lib/registry +http: + addr: :5000 + headers: + X-Content-Type-Options: [nosniff] + Access-Control-Allow-Origin: ['*'] +health: + storagedriver: + enabled: true + interval: 10s + threshold: 3 + diff --git a/del_images.sh b/del_images.sh new file mode 100755 index 0000000..8d1295c --- /dev/null +++ b/del_images.sh @@ -0,0 +1,7 @@ +#!/bin/bash +sudo bash <