如何查找docker system df显示的活跃Docker镜像与卷?
查找Docker活跃镜像与卷的方法
定位活跃镜像
docker system df里的"活跃镜像"指的是被容器(哪怕是停止状态)、Swarm服务或其他Docker组件引用的镜像,不一定对应运行中的容器。可以用以下命令排查:
- 查看所有容器(含停止状态)关联的镜像:
docker ps -a --format "{{.Image}}" | uniq - 若启用了Swarm,检查服务引用的镜像:
docker service ls --format "{{.Image}}" - 查看未被标记为悬虚的镜像(这类镜像通常存在关联引用):
docker image ls --filter "dangling=false"
定位活跃卷
活跃卷是指被容器(无论运行/停止)或服务挂载的卷,可通过这些命令查找:
- 查看所有容器(含停止状态)挂载的卷信息:
docker ps -a --format "{{.Names}}: {{.Mounts}}" - 列出所有卷并查看其关联的容器:
输出里的docker volume ls -q | xargs docker volume inspect --format '{{.Name}}: {{.Containers}}'Containers字段会显示关联的容器ID,哪怕容器已经停止。
为什么docker ps无输出但存在活跃对象?
docker ps默认只显示运行中的容器,停止的容器、Swarm服务的残留副本(未彻底删除)依然会引用镜像和卷。另外,曾经创建过但未清理的服务、构建过程中产生的临时容器也可能导致这种统计结果。
如果确认没有需要保留的资源,可执行docker system prune -a清理所有未被使用的镜像、卷、容器等,执行前请务必确认数据安全。
内容的提问来源于stack exchange,提问作者Johnny Metz
相关产品推荐
相关产品推荐

