如何无需拉取从JFrog Artifactory获取Docker镜像大小?
无需拉取Docker镜像获取JFrog Artifactory中镜像大小的可行方案
方案1:通过Manifest API批量获取层大小求和
Artifactory的Docker仓库支持返回镜像的manifest文件,其中包含所有层的size字段,相比逐个请求层更高效:
- 执行请求获取manifest:
curl -u <用户名>:<密码> "https://<artifactory地址>/docker/<仓库名>/v2/<镜像名>/manifests/<标签>" - 解析返回的JSON数据,遍历
layers数组累加每个size值,若需要包含镜像配置文件大小,可加上config字段中的size值。
方案2:使用JFrog CLI直接查询
JFrog CLI提供了内置命令,能直接输出镜像总大小,无需手动计算:
- 先配置CLI:
按提示输入Artifactory地址、账号信息完成配置。jfrog rt config - 查询镜像大小:
输出结果中会直接显示镜像的总大小(含所有层与配置文件)。jfrog rt docker-show <仓库名>/<镜像名>:<标签>
方案3:通过Item API查询镜像关联文件总大小
Docker镜像在Artifactory中以多个文件(层blob、manifest、config等)存储,可通过Item API获取这些文件的大小总和:
- 请求获取镜像对应路径下的所有文件信息:
注:路径需匹配Artifactory实际存储结构,部分场景下标签会映射到哈希路径,可通过manifest中的curl -u <用户名>:<密码> "https://<artifactory地址>/api/storage/docker/<仓库名>/<镜像名>/<标签>"config.digest找到对应路径。 - 从返回的
children字段中提取每个文件的size值并累加。
方案4:Artifactory UI手动查看(适合非自动化场景)
若只是临时查询,直接通过Web UI操作:
- 进入目标Docker仓库,找到对应镜像和标签
- 点击镜像详情页,页面中会直接展示镜像总大小,无需拉取镜像。
内容的提问来源于stack exchange,提问作者Manisai Bashetty
相关产品推荐
相关产品推荐

