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

垃圾回收参考:官网说明

相关推荐
whltaoin15 小时前
25年12月26日-福州某科技公司一面面试原题
java·linux·docker·面试·职场和发展·k8s·springboot
汪碧康1 天前
二进制kubenetes-1.34.2安装包快速部署k8s集群
云原生·容器·kubernetes·k8s·etcd·xkube
汪碧康2 天前
【k8s-1.34.2安装部署】六.企业级部署cilium-1.18.4网络插件
网络·云原生·容器·kubernetes·k8s·cilium·xkube
查尔斯-BUG万象集2 天前
解决 OceanBase CE 启动失败:OBD-2002: Failed to start 0.0.0.0 observer
docker·k8s·oceanbase
极客小云3 天前
【Dockerfile 编写最佳实践:优化镜像构建与层缓存】
缓存·docker·k8s
汪碧康4 天前
【k8s-1.34.2安装部署】三.etcd-v3.6.6 TLS版集群安装
容器·kubernetes·k8s·etcd·dashboard·xkube·etcd集群部署
小石潭记丶6 天前
安装/配置Longhorn
k8s
ymf516 天前
DevOps平台部署K8s容器的Values值配置详解
k8s·devops
百锦再7 天前
UniApp与UniApp X:跨平台开发的范式革命与全面技术解析
服务器·ai·uni-app·k8s·core·net
新手小白*13 天前
Kubernetes 运维实战:etcd 备份恢复、集群升级与证书更新
k8s