Docker 磁盘占用盘查和清理
排查
查看 Docker 各组件磁盘占用(镜像/容器/卷/缓存)
docker system df
详细查看每个对象的磁盘占用
docker system df -v
精准定位大体积容器
- 进入容器,查看哪些文件夹使用磁盘比较大,反复执行这条命令,修改查询使用磁盘比较大的文件夹,一步一步溯源
du -h --max-depth=1 / 2>/dev/null | sort -h
清理
清理容器
- 仅删除停止运行的容器
docker container prune - 强制删除单个容器
docker rm -f <container_id> - 删除所有容器
docker rm -f $(docker ps -aq)
清理镜像
- 删除单个镜像
docker rmi <image_id> - 删除所有悬空镜像(未被任何容器引用的中间层镜像)
docker image prune - 删除无容器使用的镜像
docker image prune -a
清理数据卷
- 删除未使用的数据卷
docker volume prune - 删除所有数据卷(会删除正在使用的数据卷,导致数据丢失)
docker volume rm $(docker volume ls -q) - 只删未使用的数据卷
docker volume rm $(docker volume ls -qf dangling=true)
清理磁盘
- 删除已停止容器 + 悬空镜像 + 未使用网络 + 构建缓存,保留被容器引用的镜像+正在使用的数据卷
docker system prune - 删除已停止容器 + 悬空镜像 + 未使用网络 + 构建缓存+所有未被容器使用的镜像(包括有 tag 的镜像),保留被容器引用的镜像+正在使用的数据卷
docker system prune -a
清理网络
-
删除未使用的自定义网络
docker network prune -
删除特定网络
docker network rm <network_name>