下载docker图像的大小

在拖动Docker镜像时,它会将镜像下载到单独的部分(图层)中,在下载镜像之前,需要获取图像所有必要图层的下载大小。

有没有办法做到这一点?


可以只运行docker pull命令并观察输出:

 ffcacfbccecb: Downloading [+++++> ] 14.1 MB/30.13 MB ffcdbdebabbe: Downloading [++> ] 1.1 MB/12.02 MB 

所以它的下载大小是“42.15”。

不过,我已经有一些选项可以逐一下载图层:

 ffcacfbccecb: Downloading [+++++> ] 14.1 MB/30.13 MB ffcdbdebabbe: Waiting 

所以这个解决scheme不适合我。

不幸的是,Docker Hub API没有公开logging。 但是你可以得到一个JWT用于API,然后打电话来列出标签来获得大小。 下面是一个使用jqparsing大小的例子:

首先validation您的令牌:

 export HUBUSER=andyshinn export HUBPASS=mypass export HUBTOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${HUBUSER}'", "password": "'${HUBPASS}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token) 

现在,您可以查询标记API以筛选特定标记并获取大小。 在这个例子中,我们得到官方图书馆wordpress图像,并过滤出latest标签:

 curl -s -H "Authorization: JWT ${TOKEN}" "https://hub.docker.com/v2/repositories/library/wordpress/tags/?page_size=100" | jq -r '.results[] | select(.name == "latest") | .images[0].size' 

你应该找回像169817871这是整个图像的大小以字节为单位。 这是来自https://gist.github.com/kizbitz/e59f95f7557b4bbb8bf2的信息的修改示例。

然而@Andy提供的答案更像是程序员的select,也是更好的方法。 我通常使用另一种方式,我觉得更容易和方便。

我经常使用在线实验室来testingDocker-image的大小和性能。 我最喜欢的是玩docker游戏 ,它提供了约3小时的terminal会议,你可以自由地做任何事情。 图片下载很容易,速度非常快。 之后,我可以获得所有关于图像的信息,无论是大小还是其他任何东西。 我也可以看到这个形象是否适合我的工作,或者是否在那里使用它。