温馨提示×

Ubuntu Overlay如何删除镜像

小樊
86
2025-11-08 12:42:08
栏目: 智能运维

Ubuntu系统中删除Docker Overlay相关镜像的正确流程
Overlay是Docker的存储驱动(如overlay2),镜像的层级数据存储在/var/lib/docker/overlay2目录中。删除镜像需通过Docker命令安全操作,直接删除overlay2目录会导致数据损坏,需避免。

1. 准备工作:停止并删除相关容器

镜像若被容器引用,无法直接删除。需先停止并移除所有关联容器:

# 停止所有运行中的容器
docker stop $(docker ps -q)

# 删除所有容器(包括已停止的)
docker rm $(docker ps -a -q)

注:若仅需删除特定容器,可将$(docker ps -a -q)替换为容器ID(通过docker ps -a查看)。

2. 查看待删除镜像

通过以下命令列出所有镜像,确认需删除的目标(重点关注REPOSITORYTAG<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

3. 删除指定或所有镜像

  • 删除指定镜像:通过IMAGE IDREPOSITORY:TAG删除(如删除ubuntu:latest):
    docker rmi ubuntu:latest
    
  • 删除所有悬空镜像(无容器引用的镜像):
    docker image prune -f
    
  • 删除所有未使用的镜像(包括未被容器引用的镜像,慎用):
    docker image prune -a -f
    

4. 验证overlay2目录空间释放

清理后,通过以下命令检查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,清理未使用的镜像、容器和网络,保持系统高效。

0