You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需拉取本地,如何查看Registry中Docker镜像的Repo Tags?

不本地拉取镜像查询私有Registry镜像标签的方法

一、使用Docker Registry HTTP API(推荐)

私有仓库需先处理认证,以下是完整操作流程:

1. 获取认证Token(仓库启用认证时)

替换<registry-url>、<repo-name>、<username>、<password>为实际值,请求认证Token:

TOKEN=$(curl -s "https://<registry-url>/v2/auth?service=<registry-url>&scope=repository:<repo-name>:pull" \
  -u "<username>:<password>" | jq -r '.token')

无认证的HTTP仓库可跳过此步骤,后续请求无需带Authorization头。

2. 获取latest标签对应的镜像Digest

必须指定Accept头请求v2格式manifest(v1格式无.config字段):

DIGEST=$(curl -s -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/vnd.docker.distribution.manifest.v2+json" \
  "https://<registry-url>/v2/<repo-name>/manifests/latest" | jq -r '.config.digest')

若为多架构镜像(manifest list),可将Accept头替换为application/vnd.docker.distribution.manifest.list.v2+json,先提取对应架构的manifest digest后再查询。

3. 查询该Digest关联的所有标签

用拿到的digest反向查询所有关联标签,过滤latest即可得到具体版本:

curl -s -H "Authorization: Bearer $TOKEN" \
  "https://<registry-url>/v2/<repo-name>/tags/list?digest=$DIGEST" | jq -r '.tags[]' | grep -v latest

二、使用Regclient工具(备选)

若不想编写复杂curl命令,regctl工具更简洁,支持私有仓库认证:

1. 配置私有仓库认证

先登录目标私有仓库:

regctl registry login <registry-url> -u <username> -p <password>

2. 获取镜像的所有关联标签

直接通过inspect命令提取标签,过滤latest:

regctl image inspect <registry-url>/<repo-name>:latest | jq -r '.RepoTags[]' | grep -v latest

常见问题解决

  • 调用manifest时无.config字段:确保请求头指定了Accept: application/vnd.docker.distribution.manifest.v2+json,v1格式manifest不包含该字段。
  • 私有仓库认证失败:检查token请求的scope参数是否正确,scope=repository:<repo-name>:pull仅需拉取权限即可完成标签和manifest查询。

内容的提问来源于stack exchange,提问作者Vetal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 20:06:28