如何查询指定私有Docker Registry中存储的所有镜像列表
核心问题原因
你使用的docker image ls是本地镜像查询命令,仅能读取当前节点Docker本地存储的镜像数据,完全不具备查询远程Registry内容的能力,这是命令功能理解错误,和Registry本身的配置、索引状态无关。
你能正常拉取运行镜像,已经说明Registry服务、镜像推送、跨节点连通性、不安全仓库配置全部正常,不存在故障。
正确查询远程Registry镜像列表的方法
Docker官方至今没有内置专门用于查询远程Registry内容的原生子命令,过往的Registry V2 API查询方案仍然适用:
方法1:直接调用Registry V2 API(无需额外安装工具)
在任意能连通Registry的节点执行如下命令即可:
- 查询所有仓库列表:
curl http://rancher-server.example.com:5000/v2/_catalog
- 查询指定仓库的所有标签(以
rancher/rancher-agent为例):
curl http://rancher-server.example.com:5000/v2/rancher/rancher-agent/tags/list
如果你的Registry配置了账号认证,在curl命令中添加-u 用户名:密码参数即可。
方法2:使用第三方工具crane(命令体验更友好)
如果需要更接近原生Docker命令的使用体验,可以安装谷歌开源的Registry专用操作工具crane,气隙环境可提前将二进制包导入内网,安装后执行命令如下:
- 查询指定Registry下所有镜像:
crane catalog rancher-server.example.com:5000
- 查询指定镜像的所有标签:
crane ls rancher-server.example.com:5000/rancher/rancher-agent
内容的提问来源于stack exchange,提问作者Christian O. Knudsen
相关产品推荐
相关产品推荐

