我找到一个官方接口可以查询到每个镜像的 tags 信息,但是我不是很理解这个接口里面关于镜像大小的参数,为什么跟我拉取的镜像的大小完全对不上?
接口是: https://registry.hub.docker.com/v2/repositories/library/redis/tags/?page=2 想看的可以点开连接看完整数据,不想点开的看下面部分数据:
{
"name": "alpine",
"full_size": 17785903,
"images": [
{
"size": 17842941,
"architecture": "s390x",
"variant": null,
"features": null,
"os": "linux",
"os_version": null,
"os_features": null
},
{
"size": 18640291,
"architecture": "ppc64le",
"variant": null,
"features": null,
"os": "linux",
"os_version": null,
"os_features": null
},
比如这里我查到了 redis 有个 tag 是 alpine ,这个里面有几个参数我不是很理解,
"full_size": 17785903 #按照我的理解应该是表示这个镜像的最终大小,但是我拉到本地,发现大小是 50.9MB,怎么换算都对不上这个数据
"images" 是一个列表,我的理解是镜像的层级,表示这个镜像是怎么构建出来的。同样对 size 参数不解
能否有大佬帮忙解释一下这个接口里面的信息的意义
1
CEBBCAT 2019-06-22 19:14:10 +08:00 via Android
architecture 是平台的意思吧,不是很了解 docker,是不是针对不同平台提供了不同的 image ?
|
2
Beebird 2019-06-22 20:00:21 +08:00 via Android
full size 应该是压缩后的镜像大小。但是下载时每个 layer 都是一个 tar 包,pull 的时候下载完成立刻解压。所以真正落到你文件系统的 image 大小是所有 layer 大小相加。
|
3
Beebird 2019-06-22 20:03:21 +08:00 via Android
还有就是这个 image list 不是层级,而且为不同架构平台 build 的 image
|