Nexus3 Docker 私服镜像仓库中的tag列表获取与digest获取问题

Nexus3 Docker 私服镜像仓库中的tag列表获取与digest获取问题

在使用由OSS Nexus3搭建的Docker私服镜像仓库时,遇到了一些用curl命令获取tag list和镜像digest的问题,分享一些自己的解决办法。

先上结论

curl 命令获取 tag list

curl "http://your_nexusHost_ip:your_repo_port/nexus/service/rest/repository/browse/your_repository_name/v2/your_image_name/tags/" 2>&1 | grep your_nexusHost_ip | awk -F\" '{print $2}'

这是我试出来的http路径格式,通过此路径会拉取到相应镜像的:一系列被tr标签和a标签包住的含tag的字段,再由grep和awk筛选后,得到一行行的含有tag信息的字段,tag信息位于每行的最后。要精确地获取tag列表,则还需后续处理。

curl 命令获取 digest

# 根据某个content digest获取其相应的digest
curl -s -H "Accept: application/vnd.docker.distribution.manifest.v2+json" http://your_nexusHost_ip:your_web_port/nexus/repository/your_repository_name/v2/your_image_name/manifest/your_content_digest | jq -r '.config.digest' | tr -d '\r\n'
# 根据某个image:tag获取对应的digest
curl -s -H "Accept: application/vnd.docker.distribution.manifest.v2+json" http://your_nexusHost_ip:your_web_port/nexus/repository/your_repository_name/v2/your_image_name/manifest/your_tag_name | jq -r '.config.digest' | tr -d '\r\n'

上述两个命令都会返回一个sha256的值。

content digest的作用可以匹配不同仓库的相同image:tag镜像的一致性,由于我在nexus的docker仓库中没找到直接通过image:tag获取content digest的方式,但发现了可以借助其他仓库已查询到具体image:tag的content digest,来反推nexus仓库中某个镜像的digest,最后通过此digest与在nexus仓库中由image:tag查询得到的digest做出一致性判断。

以上方法仅个人试验得到,如有不正请各位及时指正!有更好的方法也请多多指教!!

  • 17
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值