docs
https://docs.docker.com/registry/configuration/#delete
脚本
https://github.com/burnettk/delete-docker-registry-image
1、列出所有的镜像
[root@localhost v2]# curl http://192.168.134.133:5000/v2/_catalog
{"repositories":["busybox","myvueapp1","oopxiajun-busybox"]}
2、列出指定镜像的所有标签
2.1查看镜像busybox下的tag
[root@localhost repositories]# curl http://192.168.134.133:5000/v2/busybox/tags/list
{"name":"busybox","tags":["v1"]}
3、使用delete-docker-registry-image进行删除镜像(以下操作全在192.168.134.133上,非运行的 docker容器里面 )
3.1安装方法
官方代码
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
这是是我执行的结果
[root@localhost v2]# 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
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 16505 100 16505 0 0 9843 0 0:00:01 0:00:01 --:--:-- 9841
[root@localhost v2]# sudo chmod a+x /usr/local/bin/delete_docker_registry_image
3.2配置镜像仓库目录
官方代码
export REGISTRY_DATA_DIR=/opt/data/registry/docker/registry/v2
这个仓库地址要注意,私有registry的挂载目录是什么样的。
我的是这样的
export REGISTRY_DATA_DIR=/data/registry/docker/registry/v2
/data/registry/docker/registry/v2 是我在 搭建私有registry 时配置的 【请参考《使用Docker Registry快速搭建私有镜像仓库》】
运行docker容器时的命令是
[root@localhost xiajun]# docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name oopxiajun-registry registry:latest
ab619b3dd68e7b408c1c9cc4d1378b057aa8358bed96076ba5cafaa37bd8b532
/data/registry 是挂载目录
进入到库目录中
[root@localhost v2]# ll
总用量 0
drwxr-xr-x. 3 root root 20 3月 25 14:42 blobs
drwxr-xr-x. 5 root root 63 3月 28 21:10 repositories
[root@localhost v2]# cd repositories/
[root@localhost repositories]# ll
总用量 0
drwxr-xr-x. 5 root root 55 3月 25 14:42 busybox
drwxr-xr-x. 5 root root 55 3月 28 21:10 myvueapp1
drwxr-xr-x. 5 root root 55 3月 28 21:09 oopxiajun-busybox
3.3检查会删除那些数据
官方代码
delete_docker_registry_image --image testrepo/awesomeimage --dry-run
我运行的
[root@localhost repositories]# delete_docker_registry_image --image oopxiajun-busybox --dry-run
INFO [2020-03-28 22:15:40,971] DRY_RUN: would have deleted /data/registry/docker/registry/v2/blobs/sha256/06/0669b0daf1fba90642d105f3bc2c94365c5282155a33cc65ac946347a90d90d1
INFO [2020-03-28 22:15:40,971] DRY_RUN: would have deleted /data/registry/docker/registry/v2/blobs/sha256/83/83aa35aa1c79e4b6957e018da6e322bfca92bf3b4696a211b42502543c242d6f
INFO [2020-03-28 22:15:40,971] DRY_RUN: would have deleted /data/registry/docker/registry/v2/blobs/sha256/af/afe605d272837ce1732f390966166c2afff5391208ddd57de10942748694049d
INFO [2020-03-28 22:15:40,971] DRY_RUN: would have deleted /data/registry/docker/registry/v2/repositories/oopxiajun-busybox
3.4删除镜像
[root@localhost repositories]# delete_docker_registry_image --image busybox
INFO [2020-03-28 22:13:58,544] Deleting /data/registry/docker/registry/v2/repositories/busybox
3.5删除镜像tag
root@localhost repositories]# delete_docker_registry_image --image oopxiajun-busybox:v1 --dry-run
INFO [2020-03-28 22:16:43,449] DRY_RUN: would have deleted /data/registry/docker/registry/v2/blobs/sha256/06/0669b0daf1fba90642d105f3bc2c94365c5282155a33cc65ac946347a90d90d1
INFO [2020-03-28 22:16:43,449] DRY_RUN: would have deleted /data/registry/docker/registry/v2/blobs/sha256/83/83aa35aa1c79e4b6957e018da6e322bfca92bf3b4696a211b42502543c242d6f
INFO [2020-03-28 22:16:43,449] DRY_RUN: would have deleted /data/registry/docker/registry/v2/blobs/sha256/af/afe605d272837ce1732f390966166c2afff5391208ddd57de10942748694049d
INFO [2020-03-28 22:16:43,449] DRY_RUN: would have deleted /data/registry/docker/registry/v2/repositories/oopxiajun-busybox
[root@localhost repositories]#