文章目录
- 场景
- 1. 删除不用的容器
- 删除无效容器
- 2. 删除不用的镜像
场景
最近工作中遇到服务器磁盘紧张的情况,想到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
发现多了二十多个磁盘空间。
大功告成~!!!