Docker 核心目录结构
1. Docker 核心目录结构
数据存储目录
-
默认根目录:
/var/lib/docker
Docker 所有运行时数据(镜像、容器、卷、网络配置等)的默认存储位置。bash
复制
下载
# 查看 Docker 数据根目录 docker info | grep "Docker Root Dir" # 输出示例:Docker Root Dir: /var/lib/docker
-
子目录说明:
-
containers/
:容器的运行时数据(如容器层文件、日志)。 -
volumes/
:持久化卷(Volume)数据。 -
images/
:镜像层和元数据(实际镜像内容以分块形式存储)。 -
buildkit/
:BuildKit 构建缓存(如果使用 Docker Buildx)。 -
network/
:网络配置(如bridge
、overlay
网络)。
-
-
配置文件目录
-
主配置目录:
/etc/docker
Docker 服务端和客户端的配置文件存放位置。# 关键配置文件 /etc/docker/daemon.json # Docker 守护进程配置文件(如镜像加速、存储驱动设置)
可执行文件路径
-
Docker 命令行工具:
/usr/bin/docker
# 查看 Docker 客户端路径 which docker # 输出示例:/usr/bin/docker
-
Docker 守护进程:
/usr/bin/dockerd
which dockerd # 输出示例:/usr/bin/dockerd
日志与系统服务
-
Docker 服务日志:
# 通过 journalctl 查看 Docker 服务日志 journalctl -u docker.service
-
Systemd 服务文件:
/usr/lib/systemd/system/docker.service
Docker 服务的管理单元文件,用于控制启动、重启等操作。
2. 修改 Docker 默认存储目录
如果默认目录 /var/lib/docker
的磁盘空间不足,可修改存储路径(例如迁移到 /data/docker
):
步骤:
-
停止 Docker 服务:
systemctl stop docker
-
迁移数据(可选):
rsync -av /var/lib/docker/ /data/docker/
-
修改配置:
编辑/etc/docker/daemon.json
,添加data-root
字段:{"data-root": "/data/docker","registry-mirrors": ["https://your-mirror-url"] }
-
重启生效:
systemctl daemon-reload systemctl start docker
-
验证路径:
docker info | grep "Docker Root Dir" # 输出示例:Docker Root Dir: /data/docker
3. 关键目录总结
目录 | 用途 | 重要性 |
---|---|---|
/var/lib/docker | 默认存储镜像、容器、卷等运行时数据 | 核心目录 |
/etc/docker/daemon.json | 配置镜像加速、存储驱动、日志选项等 | 重要 |
/usr/bin/docker | Docker 客户端命令行工具 | 基础 |
/var/log/ | Docker 相关日志(通过 journalctl 查看) | 调试 |
常见问题
Q1:如何清理 Docker 占用的磁盘空间?
# 删除未使用的镜像、容器、卷 docker system prune -a --volumes
Q2:如何查看当前 Docker 存储驱动?
docker info | grep "Storage Driver" # 输出示例:Storage Driver: overlay2
Q3:为什么修改 daemon.json
后 Docker 无法启动?
检查 JSON 文件语法是否正确(如逗号、引号):
# 验证 JSON 格式 sudo jsonlint -v /etc/docker/daemon.json
通过以上目录结构和操作,你可以快速定位和管理 Docker 的存储、配置及日志文件。