查找给定标签的图像标签变体

Find image tag variants of a given tag

如果我运行这个:

$ docker search node

我在终端中得到了一些结果:

NAME                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
node                                   Node.js is a JavaScript-based platform for s…   5716                [OK]                
mhart/alpine-node                      Minimal Node.js built on Alpine Linux           363                                     
mongo-express                          Web-based MongoDB admin interface, written w…   261                 [OK]                
nodered/node-red-docker                Node-RED Docker images.                         157                                     [OK]
iojs                                   io.js is an npm compatible platform original…   126                 [OK]                
prom/node-exporter                                                                     77                                      [OK]

我的问题是 - 是否有一个命令可以用来查找第一个结果的所有变体?

我希望获得所有 images/tags 的列表,如下所示:

[
   "node:4.2",
   "node:5.1",
   "node:5.3",
   "node:5.45",
   "node:5.7",
   "node:6.2",
   "node:7",
   "node:8",
   "node:9",
   // ...
   "node:10"
]

Docker搜索没有这个功能

你可以做的是使用一个简单的 curl 命令结合 jq :

https://registry.hub.docker.com/v1/repositories/<NAME>/tags

示例:

curl https://registry.hub.docker.com/v1/repositories/node/tags | jq -r '.[].name'

请问return所有标签:

...
chakracore-8.11
chakracore-8.11.1
chakracore-8.9
chakracore-8.9.4
jessie
onbuild
slim
stretch
wheezy

并且如果你想获得所有结果的所有标签

for i in $(docker search --format {{.Name}} node); do
    echo "All tag for image : $i"
    curl https://registry.hub.docker.com/v1/repositories/$i/tags | jq -r '.[].name'
done

第一个结果的所有标签

name=$(docker search --limit 1 --format {{.Name}} node)
curl https://registry.hub.docker.com/v1/repositories/$name/tags | jq -r '.[].name'