Nexus3 Docker 仓库中通过 v1 API 和 curl 命令查找、删除镜像
本文介绍:
- 如何设置 自建 Nexus3 Docker Hosted 仓库的 v1 API 可用;
- 如何使用 curl 命令查看 Nexus3 Docker 仓库的镜像信息;
- 如何使用 curl 命令删除某个在 Nexus3 Docker 仓库中的 Docker 镜像;
- 如何使用 Python 或 Shell 自动化实现 Nexus3 Docker 仓库的镜像查找与删除。
(注:本文使用的 OSS Nexus3 版本为:3.37.3-02)
1. 如何设置 自建 Nexus3 Docker Hosted 仓库的 v1 API 可用
进入 Nexus3 Web 页面,按图中提示设置 Docker 仓库的 V1 API 可用
进入 设置 -> System -> API 页面,可以查看相关 API 操作使用方法,本文主要使用 Components API 来处理 Docker 镜像。
图中展示的每一项(GET | POST | DELETE)请求都可以点开,填写参数并测试运行的。
2. 如何使用 curl 命令查看 Nexus3 Docker 仓库的镜像信息
标准首次请求:
curl -s -X GET -H "accept:application/json" "http://nexus3地址IP:端口号/nexus/service/rest/v1/components?repository=docker仓库名称"
标准首次请求会返回一个含有 items 属性 以及 continuationToken 属性的 json 字典,其中:
- items 是一个列表,每个列表元素展示了在 docker 仓库中查询到的 镜像信息;但尤其注意的是!!items列表只会展示仓库中的部分镜像!!
- continuationToken 是一个字符串,它的作用是:作为查询请求参数,使curl命令获取后续的镜像列表
标准后续请求:
curl -s -X GET -H "accept:application/json" "http://nexus3地址IP:端口号/nexus/service/rest/v1/components?continuationToken=${前一次请求返回的continuationToken值}&repository=docker仓库名称"
可以发现,在请求 url 中多出了 continuationToken=${前一次请求返回的continuationToken值}
标准后续请求的返回值格式与标准首次请求相同,此处不再赘述。
获取 items 列表 相关镜像属性值 的请求
以标准首次请求为例:items 列表元素中包含了 id, 镜像名(name), tag值(version)等属性,本文介绍如何提取 id, name, version 的方法
提取 id:
curl -s -X GET -H "accept:application/json" "http://nexus3地址IP:端口号/nexus/service/rest/v1/components?repository=docker仓库名称" | jq -r 'items[].id'
提取 name:
curl -s -X GET -H "accept:application/json" "http://nexus3地址IP:端口号/nexus/service/rest/v1/components?repository=docker仓库名称" | jq -r 'items[].name'
提取 version:
curl -s -X GET -H "accept:application/json" "http://nexus3地址IP:端口号/nexus/service/rest/v1/components?repository=docker仓库名称" | jq -r 'items[].version'
返回值示例:
可以观察到,标准首次请求返回了一组十个记录;若访问后续记录,则需在请求 url 为:
curl -s -X GET -H "accept:application/json" "http://nexus3地址IP:端口号/nexus/service/rest/v1/components?continuationToken=${前一次请求返回的continuationToken值}&repository=docker仓库名称 | jq -r 'items[].id"
3. 如何使用 curl 命令删除某个在 Nexus3 Docker 仓库中的 Docker 镜像
删除镜像需要凭借镜像的 id 信息,第2小节详细介绍了如何获取镜像的 id 信息;
具体的删除请求如下:
curl -s -X DELETE -H "accept:application/json" "http://nexus3地址IP:端口号/nexus/service/rest/v1/components/待删除镜像id字符串"
2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
作者的情感表达细腻入微,让人在阅读中找到了心灵的慰藉。
?技术类评语?
文字流畅如丝,语言优美动人,读来令人心旷神怡。
yang yang is good in study