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

提交生成的新Docker镜像为何与原镜像大小一致?

问题解答

首先你没看错,docker images显示的确实不是实际磁盘占用——它列的是镜像的虚拟总大小,也就是把所有分层的大小加起来的总和,不管这些层是不是和其他镜像共享。

Docker用的是分层存储机制:你基于原镜像创建容器后做的修改,只会生成新的增量层,新镜像其实是原镜像的底层层加上你新增的层组合出来的,底层的未修改层是和原镜像共享的,不会重复占用磁盘空间。你看到两个镜像大小差不多,只是因为新镜像包含了原镜像所有层的大小,加上你新增的一点点内容,所以总虚拟大小接近,但实际磁盘上只多了你修改的那部分。

至于删不掉原镜像,是因为新镜像依赖原镜像的底层分层,Docker会自动跟踪每个分层的引用次数,只要还有镜像(或容器)在用到某个分层,就不会允许删除对应的父镜像,不然会导致新镜像的结构损坏。

想看实际磁盘占用的话,别用docker images,改用docker system df,这个命令会显示真实的磁盘使用情况,包括共享层节省的空间。如果要清理无用资源,可以用docker system prune -a,它会删掉所有没有被容器引用的镜像、悬空镜像等,释放真正没用的空间,但执行前要确认这些资源确实不需要了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 11:40:33