虚悬镜像(Dangling Image)是在Docker中存在的一种镜像,它已经被创建,但是没有被任何容器所引用。这通常发生在构建镜像的过程中,由于某些原因(例如构建取消或构建失败),创建了镜像但没有将其命名或标记。这些镜像被称为虚悬镜像,因为它们“悬浮”在Docker中,没有被任何容器所使用,而且也不会被Docker清理工具自动删除。
虚悬镜像会占用磁盘空间,因此建议定期清理。可以通过docker image prune
命令来清理不再使用的虚悬镜像,或者使用docker image ls -f dangling=true
来查看所有虚悬镜像。
例如在使用Dockerfile构建镜像时,使用不同的Dockerfile生成了相同tag的镜像,那么旧的镜像就会成为虚悬镜像
示例
创建一个Dockerfile
FROM ubuntu
RUN echo "hello world"
构建镜像 tag为 qgg_ubuntu:0.1
docker build -t qgg_ubuntu:0.1 .
修改Dockerfile
FROM ubuntu
RUN echo "hello world!!!"···
依旧使用tag qgg_ubuntu:0.1构建镜像
docker build -t qgg_ubuntu:0.1 .
可以看到,之前生成的镜像ID 74ac1d10d35c 成了none 成为了虚悬镜像。
这里可以使用docker image ls -f dangling=true
来查看所有的虚悬镜像
使用docker image prune
来清理虚悬镜像