清理docker的overlay2目录

使用Docker时,镜像和容器数据都存储在Docker的存储目录中,默认是/var/lib/docker。在Docker使用overlay2存储驱动时,/var/lib/docker/overlay2目录包含了overlay2存储驱动所使用的文件和目录。

overlay2是Docker的一种联合文件系统(Union File System)实现,它允许将多个目录(称为层)合并成一个统一的文件系统。这些层是只读的,除了最上面的容器层是可读写的。

主要目录结构

/var/lib/docker/overlay2/
├── l/                          # 硬链接目录(缩短路径长度)
├── [random-hash]-init/         # 容器初始化层
├── [random-hash]/              # 镜像层或容器层
│   ├── diff/                   # 该层与父层的差异文件
│   ├── link                    # 硬链接标识文件
│   ├── lower                   # 父层信息
│   └── work/                   # OverlayFS 工作目录
└── [container-id]/             # 容器可写层
    ├── diff/                   # 容器的读写变化
    ├── merged/                 # 联合挂载的最终视图
    └── work/

不要手动删除 overlay2 目录中的内容,应使用 Docker 命令进行清理,以免破坏镜像和容器的完整性。

清理和维护

# 查看 overlay2 目录大小
$ du -sh /var/lib/docker/overlay2/

# 清理无用的层
$ docker system prune

# 强制清理(包括未使用的镜像)
$ docker system prune -a

 

posted @ 2025-11-07 12:17  猪脚踏浪  阅读(0)  评论(0)    收藏  举报