docker容器查看所有没使用的镜像并删除的实现
作者:怒放de生命2010
本文主要介绍了docker容器查看所有没使用的镜像并删除的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
场景
最近工作中遇到服务器磁盘紧张的情况,想到docker镜像和容器可以删除些不用的,省出来一些空间。具体操作如下:
1. 删除不用的容器
首先执行命令 docker ps -a
查看容器列表,可以看到很多 exited的容器,表示这些容器已经退出,没用了。

删除无效容器
查询出所有的Exited的容器, 执行 docker rm 容器id 进行删除。
2. 删除不用的镜像
执行 docker images 查看镜像,

可以看到很多是没有用的镜像(显示为None的),还有些镜像看不出来,是否使用了。
可以执行下面的脚本
#!/bin/bash
# 获取所有正在运行的容器ID
running_containers=$(docker ps -q)
# 获取所有镜像列表
all_images=$(docker images --format "{{.Repository}}:{{.Tag}}")
# 遍历每个镜像,并检查是否有容器在使用
for image in $all_images; do
# 检查该镜像是否被任何容器使用
if [[ -z $(docker ps -q --filter "ancestor=$image") ]]; then
# 检查该镜像是否为正在运行的容器使用的基础镜像
if ! grep -q "$image" <<< "$running_containers"; then
echo "未使用的镜像:$image"
docker rmi "$image"
fi
fi
done删除完了,再测试下 df -h 发现多了二十多个磁盘空间。
到此这篇关于docker容器查看所有没使用的镜像并删除的实现的文章就介绍到这了,更多相关docker查看没使用镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
