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

use*_*724 6 docker docker-registry

我有一个程序设置可以远程管理本地网络上各种 PC 上的图像和容器。我也希望能够获得注册表中可用的所有图像的列表。我有注册表机器的 IP,并且正在寻找一些命令来列出该注册表中的所有内容,以便我可以按存储库/标签进行排序。

谢谢你的帮助。

doh*_*nto 8

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

Docker Registry v2 有一个定义明确的REST API

例如,如果您有位于 location: 的注册表registry.example.com:5000和 https 代理,则可以使用 address: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
Run Code Online (Sandbox Code Playgroud)