Java泛型符号T、E、K、V、? 傻傻分不清楚

📅 发布时间:2026/7/14 19:45:50 👁️ 浏览次数:
Java泛型符号T、E、K、V、? 傻傻分不清楚
胁刺构亮如果你经常使用 Docker可能会在某天发现磁盘空间莫名变小。执行 docker images命令后列表中那些既没有名字REPOSITORY也没有标签TAG、显示为 : 的镜像很可能就是罪魁祸首。这些就是“悬空镜像”今天我们就来彻底了解它。1.什么是悬空镜像简单来说悬空镜像就像是软件开发的“旧版本安装包”。它们是失去了名称和标签并且没有被任何容器使用的镜像层。由于没有标签标识它们在镜像列表中就成了“无名氏”。2.悬空镜像是如何产生的最常见的三种情况2.1 频繁构建新镜像在开发过程中我们经常重复执行 docker build -t my-app:latest .。每次构建latest标签都会从旧镜像上剥离并贴到新构建的镜像上。那个失去了标签的旧镜像就变成了悬空镜像。2.2 拉取镜像的新版本当你运行 docker pull nginx:latest来获取最新版本的 Nginx 时Docker 会把 latest标签指向刚下载的新镜像。本地上一个被标记为 nginx:latest的镜像就会变成悬空镜像。2.3 使用 docker tag重新打标当你为某个镜像创建一个新标签时如果旧标签不再被其他镜像引用它也可能变成悬空镜像。例如你将一个测试版镜像标记为稳定版docker tag my-app:test my-app:stable如果 my-app:test没有其他引用它就可能成为悬空镜像。3.如何识别悬空镜像使用以下命令可以专门列出所有悬空镜像1docker images -f danglingtrue4.如何安全清理清理悬空镜像非常安全因为它们已经被新版本替代且没有被任何容器依赖。Docker 提供了强大的清理工具。4.1 首选命令推荐1docker system prune这个命令会智能地一次性清理多种无用资源包括所有已停止的容器所有悬空镜像这正是我们想要的所有未被使用的网络所有悬空的构建缓存执行后系统会提示你确认输入y即可。 如果只想清理镜像可以执行1docker image prune这个命令默认只删除悬空镜像。4.2 高级警告谨慎使用命令 docker system prune -a或 docker image prune -a会删除所有未被容器使用的镜像而不仅仅是悬空镜像。这可能会误删一些你暂时不用但以后可能需要的基础镜像如 ubuntu, python使用前请务必三思5.如何从源头减少悬空镜像一个有效的实践是使用 Docker 的多阶段构建。它可以在最终镜像中只保留运行所需的文件避免包含构建阶段的中间层从而从源头上减少悬空镜像的产生。6.总结悬空镜像是 Docker 正常运作的副产品。定期使用 docker system prune清理它们是一个保持开发环境整洁、高效的好习惯。现在就打开终端为你的 Docker 进行一次“大扫除”吧