# for an official image the namespace is called library
curl -s https://hub.docker.com/v2/repositories/library/alpine/tags | \
jq '.results[] | select(.name=="latest") | .full_size'
# 2796860
# here the project namespace is used
curl -s https://hub.docker.com/v2/repositories/jupyter/base-notebook/tags | \
jq '.results[] | select(.name=="latest") | .full_size'
# 187647701
获取特定体系结构/操作系统的图像标记的压缩大小(以字节为单位)。
# selecting an architecture
curl -s https://hub.docker.com/v2/repositories/library/alpine/tags | \
jq '.results[] | select(.name=="latest") | .images[] | select (.architecture=="amd64") | .size'
# 2796860
# selecting an architecture and a specific os
curl -s https://hub.docker.com/v2/repositories/library/hello-world/tags | \
jq '.results[] | select(.name=="latest") | .images[] | select (.architecture=="amd64" and .os=="linux") | .size'
# 2529
6条答案
按热度按时间pbpqsu0x1#
当你在Docker hub上搜索一个Docker图像时,会有2个标签-
Repo Info
和Tags
。打开标签标签标签,你会看到所有类型的图像的大小,你可以为该图像拉。7cwmlq892#
1.对于Docker Hub上的图像:
docker save
将图像保存为.tar文件,然后将其压缩为. tar.gz文件。1.手动查看清单数据
使用
docker manifest inspect
观察清单数据,它显示了映像的压缩大小。~/.docker/config.json
文件并将experimental
设置为enable
来启用它。{ "experimental": "enabled" }
。更多信息请访问official docs。docker manifest inspect -v <registry-domain>/<image-name>
并参见为层添加size
,但仅限于您的特定架构(例如amd64
)。备注:
1.它是图层的压缩大小,而不是它们在服务器上的磁盘大小。
1.如果映像是多架构映像(例如,
alpine
linux包含arm
、amd64
和多个体系结构),则您将获得这些映像的总和,而在实际使用中,docker
仅使用相关的arch
。uubf1zoe3#
坞站集线器
获取图像特定标记的压缩大小(以字节为单位)。
获取特定体系结构/操作系统的图像标记的压缩大小(以字节为单位)。
备选
另一种方法是使用实验性的
docker manifest inspect
命令,优点是它不依赖于Docker Hub,它与其他注册表一起工作,因为它基于Image Manifest specification。o2rvlv0m4#
获取为Image Manifest V2提供服务的任何注册表拉入之前的压缩映像大小:
docker manifest inspect
(在最新Docker版本中默认可用)jq
解析清单中的图层大小并求和numfmt
将大小格式化为iec
标准(不是si
,清单中的大小基于1024)apt-get install jq
brew install coreutils jq
(核心交付numfmt
)ix0qys7i5#
如果你真的研究了docker的pull操作代码,我想你的答案就在那里。如果容器的图像没有缓存,那么在图像的pull过程中,docker首先从注册表中收集图像的信息,比如层数,每层的大小等等。
我会参考阅读此文件。
https://github.com/moxiegirl/docker/blob/master/distribution/xfer/download.go
gj3fmq9x6#
你可以简单地通过Docker Hub HTTP API获取关于图像的所有信息,如下所示:
例如这个URL
https://hub.docker.com/v2/repositories/library/couchdb/tags/latest
返回关于最新的couchdb
图像的所有信息图像大小(字节)为:
87486230
如果你只需要完整的大小,你可以通过任何json处理器,比如
jq
或其他,获取json并提取属性full_size例如: