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

垃圾回收参考:官网说明

相关推荐
9命怪猫15 小时前
[K8S小白问题集] - K8S里的Secret是什么?
k8s
IT利刃出鞘2 天前
K8S--解决dashboard一直Pending的问题
k8s
9命怪猫3 天前
[K8S小白问题集] - APIServer接受到的API调用都是什么样的?与http请求的API差别很大吗?
k8s
冷小鱼3 天前
从 Docker 到容器编排:框架选型与指令详解实战指南
运维·docker·容器·k8s·docker compose·docker swarm
wxh_无香花自开3 天前
k8s证书到期处理
k8s
云游牧者5 天前
K8S故障排查三板斧-CSDN博客
运维·docker·云原生·kubernetes·k8s·容器化·故障排查
@王先生15 天前
【K8S-ETCD初始化三节点集群】
前端·chrome·k8s·etcd·集群
牛奶咖啡135 天前
CI/CD——在jenkins中构建流程实现springboot项目的自动化构建与部署
java·ci/cd·k8s·jenkins·springboot·springboot制作镜像·使用源码项目制作镜像
脑子加油站8 天前
K8S-Ingress资源对象
算法·贪心算法·k8s
~黄夫人~10 天前
Kubernetes 入门到实战:概念详解 + kubeadm 安装 + 节点克隆全流程
linux·运维·学习·k8s·集群