出于研究目的,我试图抓取公共Docker注册表(https://registry.hub.docker.com/),并找出1)平均图像有多少层,2)这些层的大小,以了解分布情况。
然而,我研究了API和公共图书馆以及github上的细节,但我找不到任何方法:
检索所有公共存储库/图像(即使有数千个,我仍然需要一个开始列表来迭代)
找出图像的所有层
找到一个图层的大小(所以不是图像,而是单个图层)。
有人能帮我找到找回这些信息的方法吗?
谢谢你!
编辑:有人能验证在Docker注册表中搜索'*'是返回所有的存储库,而不仅仅是任何地方提到'*'的东西吗?https://registry.hub.docker.com/search?q= *
要找到一个图像的所有层,并找到一个层的大小,你可以通过“manifest”实验特性从docker hub注册表中显示清单:
docker manifest inspect ubuntu
结果是一个JSON文件(这里只显示了第一行):
{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"manifests": [
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 529,
"digest": "sha256:10cbddb6cf8568f56584ccb6c866203e68ab8e621bb87038e254f6f27f955bbe",
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 529,
"digest": "sha256:dd375524d7eda25a69f9f9790cd3e28855be7908e04162360dd462794035ebf7",
"platform": {
"architecture": "arm",
"os": "linux",
"variant": "v7"