docker运行时目录/var/lib/docker 学习

文章目录

Docker 的运行时目录是 Docker 存储容器、镜像、网络配置、数据卷等数据的核心位置,默认路径为 /var/lib/docker;如果不是,请使用 docker info | grep 'Docker Root Dir' 查看。

一、整体结构

shell 复制代码
/var/lib/docker/
├── builder
├── buildkit
├── containers
├── image
├── logs
├── network
├── overlay2
├── plugins
├── runtimes
├── swarm
├── tmp
├── trust
├── volumes
└── ...

二、子目录介绍

2.1、/var/lib/docker/builder

/var/lib/docker/builder 是 Docker 的构建缓存目录,用于存储 构建镜像时生成的中间层数据。该目录的作用与 Docker 的构建引擎(如 BuildKit)密切相关,通常在使用 docker build 命令时自动生成。

18.09 当前此目录下文件结构如下:

shell 复制代码
fscache.db 

fscache.db 文件是 Docker 用来存储这些缓存信息的数据库。它记录了关于镜像构建过程中各个步骤的信息,包括哪些文件或数据在之前的构建中已经被缓存,以及如何重新利用这些缓存。

文件内容

fscache.db 文件包含了多个条目,每个条目代表一个特定的缓存项。这些条目可能包括:

  • 缓存键:唯一标识符,用于引用特定的缓存数据。
  • 缓存数据:实际的数据或文件内容,例如从之前的构建步骤中复制的文件。
  • 元数据:关于缓存项的额外信息,如大小、创建时间等。

另外版本还有如下结构:

shell 复制代码
/var/lib/docker/builder/
├── cache/            # 构建缓存目录(核心部分)
│   ├── buildkit/     # BuildKit 缓存(若启用)
│   └── ...           # 其他构建引擎的缓存
├── metadata/         # 构建元数据(如层哈希、配置)
├── logs/             # 构建日志(部分版本可能有)
└── tmp/              # 临时文件(如层下载缓存)

常使用构建会存在缓存过大的问题,清理办法如下:

shell 复制代码
# 查看 builder 目录大小
du -sh /var/lib/docker/builder

# 清理缓存(需谨慎,会重置构建进度)
docker builder prune
# 或直接删除目录(需停止 Docker 服务)
sudo systemctl stop docker
sudo rm -rf /var/lib/docker/builder/cache/*
sudo systemctl start docker

另外此目录与buildkit 目录关系密切,也与版本迭代相关:

  • Docker 18.09+:引入 BuildKit,/var/lib/docker/builder 成为核心缓存目录。
  • 旧版本(<18.09):可能使用其他路径(如 /var/lib/docker/tmp)存储临时构建数据。
相关推荐
楼田莉子4 小时前
C++学习:C++11介绍及其新特性学习
开发语言·c++·学习·stl·visual studio
大白的编程日记.7 小时前
【Linux学习笔记】线程概念和控制(三)
linux·笔记·学习
say_fall8 小时前
C语言底层学习(4.数据在内存中的存储)
c语言·学习
952368 小时前
数据结构—双链表
c语言·开发语言·数据结构·学习
能不能别报错8 小时前
K8s学习笔记(十二) volume存储卷
笔记·学习·kubernetes
行云流水剑9 小时前
【学习记录】宝塔面板 + Docker 快速部署 RustDesk 自建远程控制服务器
服务器·docker·开源·p2p·rustdesk
报错小能手9 小时前
linux学习笔记(13)文件操作
linux·笔记·学习
sayhi_yang9 小时前
服务器上搭建支持GPU的DL+LLM Docker镜像
运维·服务器·docker
知识分享小能手10 小时前
微信小程序入门学习教程,从入门到精通,WXML(WeiXin Markup Language)语法基础(8)
前端·学习·react.js·微信小程序·小程序·vue·个人开发
LadyKaka22610 小时前
【IMX6ULL驱动学习】PWM驱动
linux·stm32·单片机·学习