雷格特提供了一个CLI,用于列出注册表上可用的图像标记,但是当图像中有很多标记时,分页就会阻塞。
问题是,到目前为止,除了在quay.io上获得前50个标记之外,我还没有找到其他方法。也就是说,如果我从dockerhub获得了calico/node映像的标记,就会得到
/tmp$ regctl tag ls calico/node | wc -l
8225但是当谈到quay.io时,它似乎只返回前50个标记,这就是regctl提供特定标志(来自regctl tag ls --help)的原因。
--last string Specify the last tag from a previous request for pagination但是
/tmp$ regctl tag ls quay.io/calico/node | wc -l
50
/tmp$ regctl tag ls quay.io/calico/node | tail -n 3
v3.4.0-0.dev-27-g319e739-ppc64le
v3.4.0-0.dev-28-g909229b-amd64
v3.4.0-0.dev-28-g909229b-arm64
/tmp$ regctl tag ls quay.io/calico/node --last 'v3.4.0-0.dev-28-g909229b-arm64' | tail -n 3
v3.4.0-0.dev-27-g319e739-ppc64le
v3.4.0-0.dev-28-g909229b-amd64
v3.4.0-0.dev-28-g909229b-arm64发布于 2022-07-29 13:39:16
这个参数起作用了,但只有一点:
$ regctl tag ls quay.io/calico/node --last v3.3.0-4-g70e7d79-ppc64le --limit 5
v3.3.0-2-g441d7c2-arm64
v3.4.0-0.dev-25-g17db8bd
v3.4.0-0.dev-25-g17db8bd-amd64
v3.4.0-0.dev-25-g17db8bd-arm64
v3.4.0-0.dev-25-g17db8bd-ppc64le跳出的东西是最后一个标签包含在新的列表中,这在OCI规范中是无效的。相反,结果应该像集线器所做的那样:
$ regctl tag ls calico/node --limit 10
06d8348
0b3286c-e9613934-1eb2608
2606b97-e0ce0bc-7a66b57
2606b97-e0ce0bca-7a66b57
383a737
43b069c
4d0d1ec
4fac26c-0ff3c42a-f442384
53afe8a
542c040
$ regctl tag ls calico/node --limit 10 --last 542c040
684ef2b
6889069
69c3089
6ce4f0a
714dda5-36dc8f6f-aa95469
714dda5-48a4a83d-aa95469
714dda5-6af11396-aa95469
765dc25
91d54c3
9512289我还注意到,当我增加限制时,我将开始看到在我请求的“最后一条”条目之前返回的条目,并且它使用了一个以前的“最后”参数来进行这些偏移。很可能是发生了一些奇怪的缓存,这在这个Jira问题中有记录。目前看来,码头没有遵循OCI分布-规范,这使得这很难测试和使用,并将需要由码头修复。
https://stackoverflow.com/questions/73120440
复制相似问题