如何使用Docker SDK for Python获取Docker镜像大小?
如何使用Docker SDK for Python获取Docker镜像大小
本地镜像大小获取
对于本地已存在的镜像,直接通过镜像对象的attrs属性就能获取大小相关字段:
import docker client = docker.from_env() some_image : docker.models.images.Image = client.images.list()[0] # 实际磁盘占用大小(单位:字节,考虑层共享) actual_size = some_image.attrs['Size'] # 虚拟总大小(所有层大小之和,包含重复的共享层) virtual_size = some_image.attrs['VirtualSize'] # 转换为更易读的MB单位 print(f"实际占用大小:{actual_size / 1048576:.2f} MB") print(f"虚拟总大小:{virtual_size / 1048576:.2f} MB")
远程仓库镜像大小获取
如果需要获取Docker Hub等远程仓库中镜像的大小,可通过get_registry_data方法获取元数据:
import docker client = docker.from_env() # 指定目标镜像(例如ubuntu:latest) target_image = "ubuntu:latest" registry_data = client.images.get_registry_data(target_image) # 提取远程镜像的压缩大小(单位:字节) remote_size = registry_data.attrs['Descriptor']['size'] print(f"远程镜像大小:{remote_size / 1048576:.2f} MB")
大小差异说明
- 本地镜像的
Size是镜像在磁盘上的实际占用空间,由于Docker的层共享机制,这个值会小于等于VirtualSize。 - 远程仓库的镜像大小是压缩后的镜像总大小,拉取到本地后,实际占用空间可能因本地已有共享层而更小。
内容的提问来源于stack exchange,提问作者J'e
相关产品推荐
相关产品推荐

