docker-registry 私有仓库镜像 之 查看与删除

镜像下载、域名解析、时间同步请点击
阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区
 
查看私有仓库有哪些镜像

如果私有仓库带有认证,在使用 curl 命令的时候需要带上 -u 参数
使用方法:
curl -XGET -u <仓库用户名>:<用户名密码> http://<仓库ip地址>:<仓库端口>/v2/_catalog
curl -XGET -u admin:admin http://192.168.91.18:5000/v2/_catalog输出的格式为 json
{"repositories":["centos","debian","MySQL","Nginx","php"]}
如果输出的镜像很多,可以用 Python 格式化 json 格式,方便查看
curl -s -XGET -u admin:admin http://192.168.91.18:5000/v2/_catalog | python -m json.tool这样看,也会直观很多
{"repositories": ["centos","debian","mysql","nginx","php"]}查看私有仓库镜像的tag使用方法:
curl -XGET -u <仓库用户名>:<用户名密码> http://<仓库ip地址>:<仓库端口>/v2/<镜像名称>/targs/list
curl -XGET -u admin:admin http://192.168.91.18:5000/v2/centos/tags/list输出的格式为 json
{"name":"centos","tags":["latest","7"]}如果输出的 tag 很多,可以用 python 格式化 json 格式,方便查看
【docker-registry 私有仓库镜像 之 查看与删除】curl -s -XGET -u admin:admin http://192.168.91.18:5000/v2/centos/tags/list | python -m json.tool这样看,也会直观很多
{"name": "centos","tags": ["latest","7"]}删除私有仓库指定镜像确认是否开启删除功能如果没有开启,执行删除镜像操作的时候,会返回如下两种结果
{"errors":[{"code":"UNSUPPORTED","message":"The operation is unsupported."}]}HTTP/1.1 405 Method Not AllowedContent-Type: Application/json; charset=utf-8Docker-Distribution-Api-Version: registry/2.0X-Content-Type-Options: nosniffDate: Fri, 18 Mar 2022 04:12:22 GMTContent-Length: 78查找 registry 容器
docker ps | grep registry以自己实际获取的信息为准
3745255afa90registry"/entrypoint.sh /etc…"About an hour agoUp About an hour0.0.0.0:5000->5000/tcp, :::5000->5000/tcpregistry进入容器
registry 进入容器的终端是 sh
docker exec -it 3745255afa90 sh一般都是在
/etc/docker/registry/config.yml
registry 镜像里面有 vi 没有 vim
vi /etc/docker/registry/config.yml我拉取的 registry 镜像默认没有配置 delete 功能
version: 0.1log:fields:service: registrystorage:cache:blobdescriptor: inmemoryfilesystem:rootdirectory: /var/lib/registry# 增加这里的 delete 和 enabled ,注意 yaml 语法格式# 如果有 delete ,并且 enable 为 true 表示已经开启了删除功能delete:enabled: truehttp:addr: :5000headers:X-Content-Type-Options: [nosniff]health:storagedriver:enabled: trueinterval: 10sthreshold: 3修改完成后,重启 registry 容器
docker restart 3745255afa90获取指定镜像的 hash 值使用方法
curl --header “
Accept:application/vnd.docker.distribution.manifest.v2+json” -I-u <仓库用户名>:<用户名密码> http://<仓库ip地址>:<仓库端口>/v2/<镜像名称>/manifests/<镜像 tag>
curl -I -XGET --header "Accept:application/vnd.docker.distribution.manifest.v2+json" -u admin:admin http://192.168.91.18:5000/v2/centos/manifests/latestDocker-Content-Digest 这里就会出现镜像的 hash 值
HTTP/1.1 200 OKContent-Length: 529Content-Type: application/vnd.docker.distribution.manifest.v2+jsonDocker-Content-Digest: sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dcDocker-Distribution-Api-Version: registry/2.0Etag: "sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc"X-Content-Type-Options: nosniffDate: Fri, 18 Mar 2022 04:06:42 GMT删除私有仓库中的镜像使用方法
curl -I -XDELETE -u <仓库用户名>:<用户名密码>http://<仓库ip地址>:<仓库端口>/v2/<镜像名称>/manifests/<获取的 hash 值>
curl -I -XDELETE -u admin:admin http://192.168.91.18:5000/v2/centos/manifests/sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc返回的状态码是 202
HTTP/1.1 202 AcceptedDocker-Distribution-Api-Version: registry/2.0X-Content-Type-Options: nosniffDate: Fri, 18 Mar 2022 04:24:23 GMTContent-Length: 0


推荐阅读