首页/云/Docker 容器速查/overlay2 存储驱动与数据目录
网络与存储52 条

overlay2 存储驱动与数据目录

多数 Linux 上 Docker 使用 overlay2 驱动:镜像层与容器读写层落在 /var/lib/docker/overlay2,容器里改文件不污染镜像层。

Docker 容器速查云更新于 2026-10-13

overlay2 与层的落盘

多数 Linux 环境上容器运行时使用 overlay2 存储驱动:镜像层与容器的可写层都落在数据目录的对应子目录里,容器内修改文件不会污染镜像层。理解这一点有助于排查磁盘占用增长、层累积,以及「删了文件空间却没降下来」这类常见疑问。

基本信息

用途理解镜像层与容器层的落盘方式
数据目录数据根目录下的存储子目录
查看驱动通过环境信息命令读取驱动字段
层累积容器内删除的文件在宿主层仍留有记录
适用平台主流 Linux 发行版

典型使用场景

  • 排查磁盘占用增长对应的层来源
  • 分析容器内删了文件但空间未释放的问题
  • 理解镜像层与容器可写层的区别
  • 核对节点实际使用的存储驱动
  • 评估数据目录所在分区的容量规划

查看与核对

查看与核对
docker info -f '{{.Driver}}'                       # 查看当前存储驱动
docker info -f '{{json .DriverStatus}}'            # 驱动状态与空间信息
sudo ls /var/lib/docker/overlay2 | head -5         # 查看层目录,需要管理员权限
sudo df -h /var/lib/docker                         # 数据目录所在分区水位

对象与含义

对象含义注意
镜像层只读的共享层多个容器可以共用
容器可写层每个容器独有所有写入都落在这一层
删除记录以特殊标记表示删除原始数据在底层仍然存在
数据目录层与元数据的落盘位置磁盘告警先看该分区
容器内删除文件在宿主层仍会留下删除标记;镜像很小但占用不降,往往是进程仍持有已删除文件的句柄。
不要手工删除数据目录下的内容:元数据与实际目录不一致会导致守护进程异常,清理应当走容器侧命令。

排障方向

  • 空间异常先看数据目录所在分区的水位与增长趋势
  • 占用不降时检查是否有进程持有已删除文件的句柄
  • 多个容器共用镜像层时,删除镜像前确认引用关系
  • 把数据目录分区纳入监控,避免只监控根分区

易错点

  • 手工清理数据目录:元数据与目录不一致,守护进程可能无法启动
  • 镜像很小但占用不降:容器内删除的文件仍被进程持有句柄,需要重启对应进程或容器才释放
  • 把可写层当持久存储:容器重建后这一层内容即丢失,持久数据必须放卷
  • 忽略数据目录所在分区:容量告警应针对该分区,只看根分区会漏掉真正的风险点

数据来源与参考

  • Docker 官方文档:overlay2 storage driver(docs.docker.com/storage/storagedriver/overlayfs-driver)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌