游乐游手机版
首页/业界动态/文章详情

刚接手运维就发现 Docker 有大量的 none 镜像,一下子慌了!

时间:2026-04-16 22:51
今天聊聊Docker里那些烦人的镜像:怎么来的,怎么删,怎么防 接手一个Docker环境,发现里面躺着一堆镜像,是不是有点无从下手?这事儿不少运维同行都遇到过。别急,今天咱们就把这事儿掰开揉碎了讲清楚:这些“无名氏”镜像到底是怎么冒出来的,怎么才能彻底清理干净,以及如何从源头上避免它们再次泛滥。 问

今天聊聊Docker里那些烦人的镜像:怎么来的,怎么删,怎么防

接手一个Docker环境,发现里面躺着一堆镜像,是不是有点无从下手?这事儿不少运维同行都遇到过。别急,今天咱们就把这事儿掰开揉碎了讲清楚:这些“无名氏”镜像到底是怎么冒出来的,怎么才能彻底清理干净,以及如何从源头上避免它们再次泛滥。

问题很常见,但处理起来有门道。下面就从根源说起。

1. none镜像是怎么产生的?

先说结论:这些镜像通常不是什么“异常产物”,而是“被新版本顶掉了标签的旧镜像”。说白了,就是镜像还在,但名字没了。

最常见的来源有四个:

(1)反复构建(Build)同一个标签

这是头号“元凶”。比如,你习惯用`latest`标签来构建镜像:

docker build -t app-api:latest .

第一次构建,一切正常。但当你第二次执行同样的命令时,新镜像生成,`latest`这个标签就自动从旧镜像身上“跳槽”,贴到了新镜像上。被抛弃的旧镜像,就变成了`:`。

(2)Docker Compose或CI/CD流水线自动构建

在`docker-compose.yml`里配置了`build`,并且镜像名用了`latest`标签:

build: .
image: app-api:latest

那么,每次执行`docker-compose up --build`,都会生成一个新镜像并覆盖`latest`标签,从而制造出一个新的镜像。文章开头那位同行遇到的情况,正是这个问题。

(3)构建过程失败或中断

构建过程中如果因为错误或手动中断而失败,Docker可能已经生成了部分镜像层,但没来得及成功打上最终的标签,这些中间产物也会以的形式残留。

(4)手动操作标签

这种情况相对较少,比如手动给镜像重打标签(`docker tag`)或删除某个标签,也可能导致原镜像失去标签,变成

2. 删了,磁盘空间却不降?

这才是最让人困惑的地方:明明用`docker rmi`把那些镜像删掉了,为什么磁盘空间一点没见释放?

关键在于,你删除的镜像层并没有真正从磁盘上抹去,而是从“镜像层”的身份,转变成了“构建缓存(Build Cache)”。

为什么会这样?

现在Docker默认使用BuildKit来构建镜像,它非常“聪明”地考虑了构建效率。当你删除一个由`docker build`生成的镜像时,BuildKit会识别到这些镜像层可能对下一次构建有用,于是就把它们“收编”进了构建缓存里,以备不时之需。

看看下面的对比就一目了然了:

删除前,镜像占用空间:

删除后,镜像少了,但构建缓存增加了:

两图一对比就很清楚了:Images列表是清爽了,但Build Cache的体积却涨上去了。磁盘空间自然没有实质性释放。

3. 如何正确删除(释放空间四步法)

按照下面这个顺序来操作,既能清理干净,又不会影响正在运行的服务。当然,为求万无一失,操作前给环境做个快照总是个好习惯。

第一步:清理已停止的容器

docker container prune

这步是基础清理,移除那些已经停止运行的容器实例。

第二步:清理镜像

docker image prune

这个命令会交互式地询问你是否删除所有未被使用的悬空镜像(dangling images),也就是那些镜像。

第三步:清理构建缓存(关键步骤)

docker builder prune

这才是释放磁盘空间的“杀手锏”。它会清理无用的构建缓存。需要提醒的是,执行这步后,下次构建镜像时会因为缓存缺失而变慢一些,但为了换取宝贵的磁盘空间,这个代价通常是值得的。

第四步:验证空间释放情况

docker system df
df -h

分别用Docker自带的磁盘查看命令和系统命令检查一下,这时候你应该能看到磁盘使用率有了明显的下降。

4. 避坑操作:这些雷千万别踩

清理有方法,蛮干有风险。下面这两个操作,尤其要警惕。

(1)慎用“核弹”命令:docker system prune -a

docker system prune -a

这个命令威力巨大,它会删除所有未被容器使用的镜像,包括那些有正常标签的镜像。如果你有些镜像只是暂时没被运行,但后续还需要,这个命令就会导致镜像丢失。它还可能清理掉停止的容器(其中若有重要数据就麻烦了),虽然默认不删除数据卷,但整个操作风险较高,非必要不推荐。

(2)绝对不要手动删除Docker数据目录

有些人一着急,看到`/var/lib/docker/overlay2`目录占空间大,直接上手`rm -rf`。这无异于“自杀式”操作。这个目录是Docker存储镜像层和容器数据层的核心位置,直接删除文件系统内容,会导致Docker引擎彻底故障,所有容器和镜像都可能无法恢复。

所以,记住上面的“清理四步法”就足够了,千万别去动底层文件。

说到底,比学会删除更重要的,是理解Docker磁盘占用的这套机制。搞明白了镜像、容器、缓存之间的关系,以后再遇到这类问题,你就能从容应对,游刃有余了。

来源:https://www.51cto.com/article/834837.html
上一篇戴尔科技托管服务加速企业现代化进程 下一篇绿色数据中心的"双重考验":PUE已成过去式,CUE才是未来标杆?
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
长安汽车明年一季度发布首款车载人形机器人小安
业界动态 · 2026-06-29

长安汽车明年一季度发布首款车载人形机器人小安

长安汽车公布机器人战略,采用“1+N+X”布局,联合头部伙伴攻克大脑、能源、驱动技术。人形机器人“小安”身高169cm,体重69kg,移动速度0 8m s,具备40个自由度,续航超2小时。预计明年一季度发布首款车载组件机器人,已在广州车展展示。

中国信科刷新光通信世界纪录 每秒可下载1.4万部4K电影
业界动态 · 2026-06-29

中国信科刷新光通信世界纪录 每秒可下载1.4万部4K电影

3月25日,光通信领域迎来又一个里程碑:中国信科集团光通信技术和网络全国重点实验室联合鹏城实验室、烽火藤仓光纤科技有限公司,成功实现了2 5Pb s 24芯光纤超大容量实时光传输,再次刷新了世界纪录。 这一研究成果不仅入选国际顶级光通信会议OFC(2026)并荣获“高分论文”称号,还受国际权威SCI

美国调查18万辆特斯拉Model3车门应急释放装置易找性
业界动态 · 2026-06-29

美国调查18万辆特斯拉Model3车门应急释放装置易找性

美国国家公路交通安全管理局对约17 9万辆2024款特斯拉Model3启动缺陷调查,焦点在于车门应急释放装置是否不易找到且标识不清。该调查源于一份缺陷请愿,不意味着立即召回,但可能引发后续监管措施。

doc个人图书馆停服 创始人称无偿转让失败
业界动态 · 2026-06-29

doc个人图书馆停服 创始人称无偿转让失败

运营长达20年,累计服务8000万用户的360doc个人图书馆,最终还是迎来了谢幕时刻。2026年5月1日,这个承载着无数用户收藏记忆的知名平台将正式停止服务——关停原因并非用户流失,而是始终未能寻得一位能够安全接管的合适人选。 创始人蔡智在告别信中坦言,近两个月来,他一直在尝试将360doc无偿转

年Q1随身WiFi实测安全靠谱高性价比机型推荐
业界动态 · 2026-06-29

年Q1随身WiFi实测安全靠谱高性价比机型推荐

2025年10月,艾瑞咨询正式授予飞猫“AI WiFi品类开创者”认证,紧接着CIC也将其认定为“多网融合自由切换技术服务首创者”。这些权威认证背后,折射出一个清晰的市场趋势:移动办公、户外出行、宿舍上网等场景的需求正在快速增长,随身WiFi几乎已成为不少用户的刚需装备。但问题也随之而来——网络卡顿