当前位置: 首页 > wzjs >正文

做网站之前备案新闻资讯建站服务商

做网站之前备案,新闻资讯建站服务商,seo快速排名,如何建一个营销网站目录 理解与清理 Docker 中的悬空镜像(Dangling Images)1. 什么是悬空镜像(Dangling Images)?Example:查看悬空镜像 2. 悬空镜像是如何产生的?(1) 构建新镜像时覆盖旧标签(2) 删除镜像后遗留的中…

目录

  • 理解与清理 Docker 中的悬空镜像(Dangling Images)
    • 1. 什么是悬空镜像(Dangling Images)?
      • Example:查看悬空镜像
    • 2. 悬空镜像是如何产生的?
      • (1) 构建新镜像时覆盖旧标签
      • (2) 删除镜像后遗留的中间层
      • (3) 使用 docker pull 更新镜像
    • 3. 如何清理悬空镜像?
      • (1) 基本清理(仅删除悬空镜像)
      • (2) 强制清理(无需确认)
      • (3) 清理所有未被使用的镜像(不仅仅是悬空镜像)
      • (4) 结合过滤条件清理
    • 4. 如何避免悬空镜像积累?
      • (1) 使用 --force-rm 避免构建残留
      • (2) 使用多阶段构建(Docker 17.05+)
      • (3) 定期执行自动清理
    • 5. 总结

理解与清理 Docker 中的悬空镜像(Dangling Images)

1. 什么是悬空镜像(Dangling Images)?

悬空镜像是指 没有标签(Tag)未被任何容器引用 的 Docker 镜像层。它们通常是构建或删除镜像时遗留下来的中间层,不再被使用但仍然占据存储空间。

在这里插入图片描述

Example:查看悬空镜像

docker images -f "dangling=true"

输出可能类似:

REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
<none>      <none>    123456789abc   2 hours ago    350MB

可以看到,这些镜像没有 REPOSITORYTAG,仅有一个 IMAGE ID,这就是典型的悬空镜像。


2. 悬空镜像是如何产生的?

(1) 构建新镜像时覆盖旧标签

docker build -t my-app:1.0 .
# 再次构建同一个标签
docker build -t my-app:1.0 .

第二次构建后,旧的 my-app:1.0 镜像会变成 <none>:<none>,成为悬空镜像。

(2) 删除镜像后遗留的中间层

docker rmi my-app:1.0

如果该镜像有未被引用的依赖层,它们可能会变成悬空镜像。

(3) 使用 docker pull 更新镜像

docker pull nginx:latest
# 当新版本推送后,再次拉取
docker pull nginx:latest

旧版本的 nginx:latest 会变成 <none>:<none>,成为悬空镜像。


3. 如何清理悬空镜像?

Docker 提供了 docker image prune 命令专门用于清理悬空镜像。

(1) 基本清理(仅删除悬空镜像)

docker image prune

默认会提示确认,输入 y 后删除。

(2) 强制清理(无需确认)

docker image prune -f

(3) 清理所有未被使用的镜像(不仅仅是悬空镜像)

docker image prune -a

⚠️ 注意:这会删除所有未被容器引用的镜像,包括可能有用的缓存镜像,使用需谨慎!

(4) 结合过滤条件清理

# 删除超过 24 小时的悬空镜像
docker image prune --filter "until=24h"

4. 如何避免悬空镜像积累?

(1) 使用 --force-rm 避免构建残留

docker build --force-rm -t my-app:1.0 .

这样可以在构建失败时自动清理中间层。

(2) 使用多阶段构建(Docker 17.05+)

# 第一阶段:构建环境
FROM golang:1.18 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp .# 第二阶段:仅保留可执行文件
FROM alpine:latest
COPY --from=builder /app/myapp /usr/local/bin/myapp # 这里的 /app/myapp 来源于上面的构建
CMD ["myapp"]

这样能减少不必要的镜像层,降低悬空镜像的产生。

(3) 定期执行自动清理

可以在 CI/CD 流程或 cron 任务中加入自动清理:

docker image prune -f

或者结合 system prune 清理整个 Docker 系统:

docker system prune -f

5. 总结

关键点说明
悬空镜像是什么?无标签且未被引用的镜像层
如何查看?docker images -f "dangling=true"
如何清理?docker image prune(基础)、docker image prune -a(彻底)
如何避免?使用 --force-rm、多阶段构建、定期清理

悬空镜像虽然不会影响运行中的容器,但会占用磁盘空间。定期清理可以提高 Docker 环境的效率,特别是在频繁构建和更新的场景下。

拓展:

  • Docker 官方文档:docker image prune
  • Docker 多阶段构建最佳实践
http://www.dtcms.com/wzjs/839219.html

相关文章:

  • 非凡免费建网站平台三水 网站建设
  • 做外贸的 需要什么样的网站海通建设集团有限公司网站
  • 网站建设免费模板宁波市建设工程监理协会网站
  • 用ih5做微网站专业网站设计定制
  • 站长工具网网站制作哪里好
  • 怎么做一个个人网站江苏电商网站开发
  • 新颖网站页面设计怎样制作网站教程
  • 哪些软件可以做网站wordpress模版如何修改底部信息
  • 网站建设服务器配置施工企业项目负责人现场带班时间
  • 做网站界面尺寸企业展厅建筑
  • 东莞网站设计如何以前的网站忘了怎么办啊
  • 网站开发的出路博客移植wordpress
  • 关于建设学校网站策划书的范本淘宝网站建设的优点
  • ps做的网站保存不了jpgwordpress文章博客模板
  • wordpress 最新一片文章盐城seo排名
  • 腾讯云对象存储wordpress嘉兴seo网站推广
  • 营销型网站建设的步骤流程是什么梨树县住房和城乡建设局网站
  • 网站案例鉴赏网页上视频如何下载
  • 深圳市住房建设局官方网站wordpress娱乐插件
  • 福永三合一网站设计徐州网站开发兼职
  • 外贸公司网站建设费用报销免费咨询广东律师事务所
  • 同仁微网站建设工作室网站做3年3年包括什么
  • 外贸模板建站晚上睡不着正能量网站
  • 广州网站建设+美词php网站后台登陆地址
  • 百度提交网站地图做装饰公司网站6
  • 合肥网站建设高端有个印度做网站的天天找我
  • 网站建设需要提供功能目录吗网站联盟
  • 怎么做卡盟网站唐山 建设工程信息网站
  • 宁波网站建设哪家比较好清空wordpress
  • 个人网站营业执照未来做哪个网站能致富