registry镜像仓库通过HTTP API删除镜像

registry组件提供了HTTP的接口,可以参考:官网API说明

删除思路:

镜像由多个layers层组成,DELETE /v2/<name>/blobs/<digest>可以用来删除一个单独的层,但是我们的目的不是要删除层。

我们用DELETE /v2/<name>/manifests/<reference> 删除整个镜像的清单,清单被删除后,再由registry的垃圾回收来清理物理的存储。<name>为仓库名称,<reference>为查询镜像时(GET /v2/<name>/manifests/<reference>)返回的Header中的Docker-Content-Digest的值。

示例:

目标:调用registry的HTTP API删除localhost:5000/amq:3.0这个镜像

1、查询镜像

shell 复制代码
curl --location '127.0.0.1:5000/v2/amq/manifests/3.0' \
--header 'Accept: application/vnd.docker.distribution.manifest.v2+json'

Header返回了Docker-Content-Digest为:sha256:7b9398d6cedb81f8cf7cb30c83f64ee4fd8eb1c301ed1f28951f114fa03255c0

2、删除镜像清单

shell 复制代码
curl --location --request DELETE '127.0.0.1:5000/v2/amq/manifests/sha256:7b9398d6cedb81f8cf7cb30c83f64ee4fd8eb1c301ed1f28951f114fa03255c0'

3、手动触发垃圾回收,清理物理内存

用docker exec进入registry容器执行命令

shell 复制代码
docker exec -it registry /bin/sh
shell 复制代码
/bin/registry garbage-collect /etc/docker/registry/config.yml

垃圾回收参考:官网说明

相关推荐
RancherLabs1 天前
Rancher 社区双周报| Longhorn v1.10.0 重磅发布,企业级存储性能全面升级
kubernetes·k8s·rancher
我的offer在哪里5 天前
企业级 K8s 深度解析:从容器编排到云原生基石的十年演进
阿里云·k8s
霖.2416 天前
四种常用SVC(service)及其与Ingress协作方式
linux·服务器·云原生·kubernetes·k8s
博客园团队19 天前
博客园出海记-K8S集群优化:一次命中注定的失败
k8s·出海记
小马过河R20 天前
K8s引入Service Mesh原因及Istio入门
云原生·容器·kubernetes·k8s·istio·service_mesh
Gogo81621 天前
k8s 跟 nacos 关于服务注册以及服务发现
java·nacos·k8s
@ chen1 个月前
kubectl常用命令
云原生·kubernetes·k8s
博客园团队1 个月前
博客园出海记-组装集装箱:自建 Kubernetes 集群
k8s·出海记
虚伪的空想家1 个月前
K8S的dashboard部署与访问
云原生·容器·kubernetes·k8s·web·dashboard
一个向上的运维者1 个月前
详细解读k8s的kind中service与pod的区别
容器·k8s