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

垃圾回收参考:官网说明

相关推荐
KubeSphere 云原生16 小时前
云原生周刊:DeepSeek 颠覆人工智能
云计算·k8s·容器平台·kubesphere
qq_4489410816 小时前
3、k8s项目的生命周期和yaml文件
kubernetes·k8s
学Linux的语莫2 天前
k8s中,一.service发布服务,二.dashboard:基于网页的k8s管理插件,三.资源服务与帐号权限
linux·运维·服务器·docker·容器·k8s
KubeSphere 云原生4 天前
高效运维!K8s 多节点自动安全排空
云计算·k8s·容器平台·kubesphere
KubeSphere 云原生6 天前
云原生周刊:K8s引领潮流
云计算·k8s·容器平台·kubesphere
smart_ljh7 天前
k8s二进制集群之ETCD集群证书生成
数据库·k8s·etcd
安心Smile14 天前
k8s支持自定义field-selector spec.hostNetwork过滤
linux·运维·服务器·k8s·field-selector
仇辉攻防14 天前
【云安全】云原生-K8S-搭建/安装/部署
web安全·网络安全·docker·云原生·容器·kubernetes·k8s
仇辉攻防15 天前
【云安全】云原生-K8S-简介
web安全·网络安全·docker·云原生·容器·kubernetes·k8s
飞火流星0202715 天前
CentOS7非root用户离线安装Docker及常见问题总结、各种操作系统docker桌面程序下载地址
docker·云原生·k8s·docker安装·docker离线安装·docker离线安装包下载·docker桌面程序下载地址