欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

docker registry 批量删除镜像

程序员文章站 2022-05-18 15:44:58
...
参考地址 registry delete
registry版本2.0

1.registry启动时环境变量追加 REGISTRY_STORAGE_DELETE_ENABLED=true

docker run --name registry -e REGISTRY_DELTET_ENABLED=true -e REGISTRY_STORAGE_DELETE_ENABLED=true -e REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/var/lib/registry -d -p 5000:5000 -v /data/registry/data:/var/lib/registry registry


2.下载附件registry.py.zip,并解压

3.执行脚本
python registry.py -l user:pass -r https://registry:5000 --delete
docker exec -it <registry container id or name> registry garbage-collect /etc/docker/registry/config.yml


4.说明
上述脚本默认每个镜像保留最新的10个版本,可以通过参数设定保留的版本数

python registry.py -l user:pass -r https://registry:5000 --delete --num 3

5.在使用的过程中发现,如果registry分页时,直接利用registry.py效果只是对第一页的镜像删除,如果出现这种情况,可以将 registry.py 的123行从 result = self.send('/v2/_catalog') 改成 result = self.send('/v2/_catalog?n=5000') ,其中5000只是个大概数,只要比自己所用的镜像总数多就可以