You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker镜像分层共享疑问:同基础镜像的总存储占用咨询

关于Docker镜像共享层后的实际占用空间分析

嘿,这个问题问到点子上了,刚好能帮你理清Docker镜像分层存储的关键逻辑!

首先得明确:Docker采用的是联合文件系统(Union File System),所有镜像都是由一层层只读的文件系统层叠加而成的。当一个镜像以另一个镜像作为基础来构建时,它只会在基础镜像的层之上添加自己独有的新层,完全共享基础镜像的所有已有层——这也是Docker节省磁盘空间的核心机制。

回到你的情况:

  • bde2020/spark-worker:2.4.0-hadoop2.8 是基础镜像,大小3.29GB,这是它所有层的累计大小
  • openkbs/docker-spark-bde2020-zeppelin:latest 基于前者构建,它显示的4.89GB其实是基础镜像的所有层 + 它自己新增的独分层的累计总大小,并非它独占的磁盘空间

所以当这两个镜像都在你的本地Docker环境中时,实际占用的磁盘空间应该是:

基础镜像的大小(3.29GB) + Zeppelin镜像独有的新增层大小(4.89GB - 3.29GB = 1.6GB)≈ 4.89GB

而不是两个镜像大小直接相加的8GB左右——因为它们共享了基础镜像的所有公共层,这部分空间只会被计算一次。

如果你想验证这个结论,可以在终端里运行docker system df命令,查看输出里的Images部分:

  • Size列是每个镜像的累计大小(就是你看到的4.89GB和3.29GB)
  • Shared Size列是该镜像与其他镜像共享的层大小
  • Unique Size列是该镜像独有的层大小

把所有镜像的Unique Size加起来,就是它们实际占用的总磁盘空间,结果会接近4.89GB而不是8GB。

内容的提问来源于stack exchange,提问作者Nag

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 23:47:55