Ubuntu系统中删除Docker Overlay相关镜像的正确流程
Overlay是Docker的存储驱动(如overlay2),镜像的层级数据存储在/var/lib/docker/overlay2目录中。删除镜像需通过Docker命令安全操作,直接删除overlay2目录会导致数据损坏,需避免。
镜像若被容器引用,无法直接删除。需先停止并移除所有关联容器:
# 停止所有运行中的容器
docker stop $(docker ps -q)
# 删除所有容器(包括已停止的)
docker rm $(docker ps -a -q)
注:若仅需删除特定容器,可将
$(docker ps -a -q)替换为容器ID(通过docker ps -a查看)。
通过以下命令列出所有镜像,确认需删除的目标(重点关注REPOSITORY和TAG为<none>的悬空镜像,这类镜像无容器引用,是清理的重点):
docker images -a
输出示例:
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> abc123def456 2 weeks ago 1.2GB
ubuntu latest 7e0aa2d69a15 1 month ago 72.9MB
IMAGE ID或REPOSITORY:TAG删除(如删除ubuntu:latest):docker rmi ubuntu:latest
docker image prune -f
docker image prune -a -f
清理后,通过以下命令检查overlay2目录大小,确认空间是否释放:
sudo du -sh /var/lib/docker/overlay2
若目录大小明显减小,说明清理成功。
overlay2目录:sudo rm -rf /var/lib/docker/overlay2/*会彻底清除所有镜像和容器数据,导致Docker环境崩溃,仅能在彻底卸载Docker时使用。docker save将镜像保存为文件(如docker save -o myimage.tar ubuntu:latest),避免误删。docker system prune -a,清理未使用的镜像、容器和网络,保持系统高效。