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

垃圾回收参考:官网说明

相关推荐
梁萌6 小时前
14-DevOps-快速部署Kubernetes
运维·kubernetes·k8s·devops·kubeode
时迁2471 天前
【k8s】k8s是怎么实现自动扩缩的
云原生·容器·kubernetes·k8s
时迁2473 天前
【k8s】LVS/IPVS的三种模式:NAT、DR、TUN
kubernetes·k8s·lvs
时迁2473 天前
【k8s】PV,PVC的回收策略——return、recycle、delete
kubernetes·k8s·pvc·pv
三次握手四次挥手4 天前
基于Python+Pytest实现自动化测试(全栈实战指南)
开发语言·python·自动化·k8s·apache·pytest·代码规范
我的golang之路果然有问题4 天前
案例速成k8s,个人笔记快速入门
经验分享·笔记·docker·云原生·容器·kubernetes·k8s
亿牛云爬虫专家5 天前
容器化爬虫部署:基于K8s的任务调度与自动扩缩容设计
爬虫·容器·kubernetes·自动化·k8s·爬虫代理·代理ip
merge不墨迹7 天前
Kubernetes 多主多从集群部署完整文档
k8s
CAE虚拟与现实11 天前
Dockerfile 文件常见命令及其作用
docker·容器·k8s·镜像·dockerhub
sunican11 天前
在Mac上离线安装k3s
macos·k8s·k3s