diff --git a/README.md b/README.md index 7292a47..bf2d090 100644 --- a/README.md +++ b/README.md @@ -2,30 +2,41 @@ registry.py is a script for easy manipulation of docker-registry from command line (and from scripts) -# Installation +## Installation Download registry.py and set it as executable +``` chmod 755 registry.py +``` + It uses requests python module, so you may need to install it as well: +``` pip install requests +``` - -# Listing images +## Listing images The below command will list all images and all tags in your registry: +``` registry.py -l user:pass -r https://example.com:5000 +``` List all images, tags and layers: +``` registry.py -l user:pass -r https://example.com:5000 --layers +``` List particular image(s) or image:tag (all tags of ubuntu and alpine in this example) +``` registry.py -l user:pass -r https://example.com:5000 -i ubuntu alpine +``` Same as above but with layers +``` registry.py -l user:pass -r https://example.com:5000 -i ubuntu alpine --layers - +``` -# Deleting images +## Deleting images Keep only last 10 versions (useful for CI): Delete all tags of all images but keep last 10 tags (you can put it to your build script @@ -44,30 +55,37 @@ Delete all tags for all images (do you really want to do it?): registry.py -l user:pass -r https://example.com:5000 --delete-all -# Important notes: +## Important notes: +### garbage-collection in docker-registry 1. docker registry API does not actually delete tags or images, it marks them for later garbage collection. So, make sure you run something like below (or put them in your crontab): +``` docker-compose -f [path_to_your_docker_compose_file] run \ registry bin/registry garbage-collect \ /etc/docker/registry/config.yml - +``` or (if you are not using docker-compose): - +``` docker run registry:2 bin/registry garbage-collect \ /etc/docker/registry/config.yml - +``` for more detail on garbage collection read here: https://docs.docker.com/registry/garbage-collection/ -2. Docker registry does not enable image deletion by default. Make sure to enable it by -either creating environment variable - REGISTRY_STORAGE_DELETE_ENABLED: "true" +### enable image deletion in docker-registry +Make sure to enable it by either creating environment variable + `REGISTRY_STORAGE_DELETE_ENABLED: "true"` or adding relevant configuration option to the docker-registry's config.yml. For more on docker-registry configuration, read here: https://docs.docker.com/registry/configuration/ - + +You may get `Functionality not supported` error when this option is not enabled. + + +# Contact + Please feel free to contact me at anoxis@gmail.com if you wish to add more functionality or want to contribute. \ No newline at end of file