Bash 命令列出远程注册表中的所有 docker 图像

Bash command to list all docker images in a remote registry

我有一个程序设置可以远程管理本地网络上多台 PC 上的图像和容器。我也希望能够获得注册表中所有可用图像的列表。我有注册表机器的 IP,正在寻找一些命令来列出该注册表中的所有内容,以便我可以按 repository/tag.

排序

感谢您的帮助。

我想您使用的是最新的 v2 docker 注册表。

Docker 注册表 v2 具有明确定义的 REST API

例如,如果您在以下位置有一个注册表:registry.example.com:5000 和 https 代理,您可以使用地址:https://registry.example.com:5000/v2/_catalog 列出所有存储库。

这是在注册表中列出前 100 个存储库及其标签的示例。请注意,与此快速示例相比,存储库和标签的分页需要更加小心。

registry="registry.example.com:5000"
repos=`curl https://$registry/v2/_catalog?n=100 | jq '.repositories[]' | tr -d '"'`
for repo in $repos; do 
   curl https://$registry/v2/$repo/tags/list; 
done