【问题标题】:API to get Top Docker Hub images? [closed]获取顶级 Docker Hub 图像的 API? [关闭]
【发布时间】:2017-04-15 13:39:43
【问题描述】:

我想知道是否有获取顶级 Docker Hub 映像的 API?

比如我们打开https://hub.docker.com/explore/可以得到什么

我已经检查过:

https://docs.docker.com/engine/api/v1.28/#https://docs.docker.com/registry/spec/api/

但没有找到我想要的。

【问题讨论】:

标签: docker docker-registry dockerhub


【解决方案1】:

https://hub.docker.com/explore/,调用以下API:

https://hub.docker.com/v2/repositories/library/?page=1&page_size=15

默认过滤器是按拉计数降序,它会给你以下响应:

{
    "count": 139,
    "next": "https://hub.docker.com/v2/repositories/library/?page=1&page_size=15",
    "previous": null,
    "results": [{
        "user": "library",
        "name": "nginx",
        "namespace": "library",
        "repository_type": "image",
        "status": 1,
        "description": "Official build of Nginx.",
        "is_private": false,
        "is_automated": false,
        "can_edit": false,
        "star_count": 5777,
        "pull_count": 618674944,
        "last_updated": "2017-04-06T16:35:19.178373Z",
        "build_on_cloud": null
    },
    ...
    ...
   ]
}

因此,以下将为您提供在 docker hub 上拉取的前 100 个 docker 镜像:

https://hub.docker.com/v2/repositories/library/?page=1&page_size=100

page_size 的最大大小为 100(因此每页 100 个),count 是此端点可以提供的最大计数(对于所有页面)。

例如使用curljq JSON 解析器:

curl -s "https://hub.docker.com/v2/repositories/library/?page=1&page_size=100" | \
    jq '.results'

现在有一个来自https://store.docker.com 的内部 API 可以从商店或 dockerhub 查询图像。可以通过以下方式检索 dockerhub 中最受欢迎的:

https://store.docker.com/api/content/v1/products/search?page_size=100&q=%2B&source=community&type=image%2Cbundle

请求结果有一个popularity 数字字段。获取按人气递减过滤的图像:

curl -s "https://store.docker.com/api/content/v1/products/search?page_size=100&q=%2B&source=community&type=image%2Cbundle" | \
    jq '.summaries | sort_by(-.popularity)'

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-11-28
  • 1970-01-01
  • 2019-12-10
  • 1970-01-01
  • 1970-01-01
  • 2021-11-08
  • 1970-01-01
  • 2013-03-13
相关资源
最近更新 更多