http://10.206.29.162:5000/v2/_catalog
{"repositories":["dashboard","glusterfs","kubernetes-dashboard-amd64","metrics-scraper","nacos-server","nginx"]}
查看单个镜像信息
http://ip:port/v2/image_name/tags/list
如
浏览器访问 http://xxx.xxx.xxx.xxx:5000/v2/nginx/tags/list {"name":"nginx","tags":["latest"]}
http://xxx.xxx.xxx.xxx:5000/v2/nginx/manifests/latest
docker run -d -v /app/registry:/var/lib/registry -p 5000:5000 -e REGISTRY_STORAGE_DELETE_ENABLED=true --restart=always --name registry registry:v1.0
删除
方案一:
用官方模块delete_docker_registry_image
1、添加 模块 delete_docker_registry_image
官方操作文档:https://github.com/burnettk/delete-docker-registry-image
2、删除之前需要先添加环境变量
[root@1a01vlb5970zzzz repositories]# cat /etc/profile|grep regis export REGISTRY_DATA_DIR=/app/registry/docker/registry/v2
注意:如果需要远程删除,就需要在远程用户的HOME目录的.bashrc
中添加需要的环境变量
delete_docker_registry_image --image wurstmeister/kafka # 删除镜像之后如果不重启,重新上传会报层数据已存在,必须重启才能重新上传 systemctl restart docker
方案二:
# --header "Accept: application/vnd.docker.distribution.manifest.v2+json" 这个header 是必须要加的,不加的话Content-Type 是v1+prettyjws,获取的digest是错误的!! headers = {‘Accept‘:‘application/vnd.docker.distribution.manifest.v2+json‘} url = "http://" + self.registry + "/v2/" + args[‘image_name‘] +‘/manifests/‘ + args[‘tag‘] print(url) getres =requests.get(url,headers=headers) digest = getres.headers[‘Docker-Content-Digest‘] deleteurl = "http://" + self.registry + "/v2/" + args[‘image_name‘] +‘/manifests/‘ + digest delres = requests.delete(deleteurl,headers=headers) print(delres.content) print(delres.headers) print(delres.status_code) ?
# 垃圾回收
docker exec -it da33dd273367 bin/registry garbage-collect /etc/docker/registry/config.yml &>/dev/null
问题:重新上传报错层存在,并且查询私有仓库镜像发现没上传成功
[root@1a01vlb5970zzzz repositories]# delete_docker_registry_image --image nginx INFO [2020-08-19 15:37:42,598] Deleting /app/registry/docker/registry/v2/blobs/sha256/23/231d40e811cd970168fb0c4770f2161aa30b9ba6fe8e68527504df69643aa145 INFO [2020-08-19 15:37:42,599] Deleting /app/registry/docker/registry/v2/blobs/sha256/18/189cce606b29fb2a33ebc2fcecfa8e33b0b99740da4737133cdbcee92f3aba0a INFO [2020-08-19 15:37:42,599] Deleting /app/registry/docker/registry/v2/blobs/sha256/be/bee5d581ef8bfee2b5a54685813ba6ad9bbe922115d7aef84a21a9dbfcc2d979 INFO [2020-08-19 15:37:42,599] Deleting /app/registry/docker/registry/v2/blobs/sha256/00/000eee12ec04cc914bf96e8f5dee7767510c2aca3816af6078bd9fbe3150920c INFO [2020-08-19 15:37:42,604] Deleting /app/registry/docker/registry/v2/blobs/sha256/eb/eb22865337de3edb54ec8b52f6c06de320f415e7ec43f01426fdafb8df6d6eb7 INFO [2020-08-19 15:37:42,609] Deleting /app/registry/docker/registry/v2/repositories/nginx [root@1a01vlb5970zzzz repositories]# docker push 10.206.52.220:5000/nginx:latest The push refers to repository [10.206.52.220:5000/nginx] 4fc1aa8003a3: Layer already exists 5fb987d2e54d: Layer already exists 831c5620387f: Layer already exists latest: digest: sha256:189cce606b29fb2a33ebc2fcecfa8e33b0b99740da4737133cdbcee92f3aba0a size: 948 [root@1a01vlb5970zzzz repositories]# curl -X GET http://10.206.52.220:5000/v2/_catalog {"repositories":["gluster/gluster-centos","kubernetesui/metrics-scraper","nacos-server","quay-mirror.qiniu.com/coreos/flannel","wurstmeister/kafka"]} ?
解决方案:
重启
systemctl restart docker
原文:https://www.cnblogs.com/cherylgi/p/13534412.html