在 Docker 中,/var/lib/docker
(默认安装路径)是 Docker 的核心存储目录,包含容器、镜像、卷等关键数据。以下是该目录的典型结构和内容详解:
目录 | 内容说明 |
---|---|
containers/ |
每个容器的运行时数据(ID 对应子目录),包括日志、配置、检查点等。 |
image/ |
镜像存储层数据(早期版本),现代 Docker 改用 overlay2/ 存储驱动。 |
overlay2/ |
默认存储驱动目录,存储镜像分层文件系统(Layer)和容器读写层(Copy-on-Write)。 |
volumes/ |
持久化数据卷(docker volume create 创建的卷存放于此)。 |
networks/ |
网络配置信息(如 bridge 、overlay 等网络的元数据)。 |
swarm/ |
Swarm 集群模式的相关数据(节点、服务、密钥等)。 |
buildkit/ |
BuildKit 构建缓存(用于加速镜像构建)。 |
plugins/ |
安装的 Docker 插件(如日志驱动、网络插件等)。 |
daemon.json
: Docker 守护进程配置文件(通常位于 /etc/docker/
,但可能影响此目录行为)。metadata.db
: 存储镜像和卷的元数据(如标签、依赖关系)。overlay2
为例)/var/lib/docker/overlay2/
├── l/ # 硬链接目录(缩短层路径长度)
├── <layer-id>/ # 镜像层目录
│ ├── diff/ # 该层新增的文件(如 `/usr/bin/nginx`)
│ └── link # 指向 `l/` 目录的硬链接
└── <container-id>/ # 容器读写层
├── merged/ # 联合挂载点(容器看到的完整文件系统)
├── diff/ # 容器修改的文件(写入时复制)
└── work/ # OverlayFS 内部工作目录
docker image prune
)和卷(docker volume prune
)。volumes/
)应定期备份,容器内数据建议通过卷挂载。# 查看 /var/lib/docker 总大小
du -sh /var/lib/docker
# 查看各子目录大小
du -sh /var/lib/docker/*
overlay2
占用空间大?docker system prune
清理)。/etc/docker/daemon.json
中的 data-root
路径并重启服务。如需进一步分析具体场景,请提供更多上下文(如错误日志或目录结构)。