Docker 数据存储路径之解决默认docker路径位置磁盘空间不足的问题
作者:海洋猿
本文指导如何通过修改daemon.json将Docker数据目录从/var/lib/docker迁移至/mnt/disk/docker,保留所有镜像、容器等数据,无需调整docker.service,步骤包括停止服务、迁移数据、修改配置及重启验证,需要的朋友跟随小编一起学习吧
用于迁移 Docker 默认数据目录
/var/lib/docker
到/mnt/disk/docker
,保留所有现有数据且无需修改docker.service
,仅通过daemon.json
配置完成迁移:
Docker 数据目录迁移指南(使用 daemon.json)
由于默认路径
/var/lib/docker
所在磁盘空间不足,可以将 Docker 数据目录迁移到新的挂载磁盘(如/mnt/disk/docker
),保留所有镜像、容器、卷、日志等数据。
1. 停止 Docker 服务
sudo systemctl stop docker
执行以下命令确认无残留进程:
ps aux | grep -E "docker|containerd"
- 确保没有正在运行的进程如:
dockerd
containerd
docker-containerd-shim
- 等其他 docker 子进程
2. 创建新目录并迁移数据(保留权限)
sudo mkdir -p /mnt/disk/docker sudo rsync -avz /var/lib/docker/ /mnt/disk/docker/
3. 修改 Docker 配置文件/etc/docker/daemon.json
sudo tee /etc/docker/daemon.json <<EOF { "data-root": "/mnt/disk/docker", "hosts": ["unix:///var/run/docker.sock"] } EOF
或者
vim /etc/docker/daemon.json { "data-root": "/mnt/disk/docker", "hosts": ["unix:///var/run/docker.sock"] }
4. 修复权限(可选但建议)
sudo chown -R root:docker /mnt/disk/docker sudo chmod -R 755 /mnt/disk/docker
5. 重启 Docker 并验证
sudo systemctl start docker docker info | grep "Docker Root Dir" # 应输出 /mnt/disk/docker docker ps -a # 检查原有容器是否存在
📂 Docker 默认数据目录结构详解(data-root)
当
data-root
默认为/var/lib/docker
时,包含以下关键子目录:
/var/lib/docker/ ├── buildkit/ # 镜像构建缓存 ├── containers/ # 容器运行数据(日志、配置等) ├── image/ # 镜像及元数据 ├── network/ # 网络配置 ├── overlay2/ # 镜像层与容器层(Overlay2 存储驱动) ├── plugins/ # 插件数据 ├── runtimes/ # 容器运行时信息 ├── swarm/ # Swarm 模式相关数据 ├── tmp/ # 临时文件 ├── trust/ # 镜像签名信任 ├── volumes/ # 卷数据(Volume 和 Bind Mount) └── ... # 其他运行数据
🧱 详细说明
(1)镜像存储路径
- 目录:
/var/lib/docker/image/
- 元数据:
overlay2/imagedb/
: 镜像 ID、标签等overlay2/layerdb/
: 镜像层信息(DiffID、ChainID)- 实际内容:
- 镜像层文件存储于
/var/lib/docker/overlay2/
- 每层一个目录,如:
overlay2/<layer-id>/diff
(2)容器运行时数据
- 目录:
/var/lib/docker/containers/<容器ID>/
- 关键文件:
<容器ID>-json.log
: 容器日志(JSON 格式)config.v2.json
: 容器配置hostname
,hosts
,resolv.conf
: 网络相关配置
如需恢复默认配置,只需删除或修改
/etc/docker/daemon.json
并迁移数据回/var/lib/docker
。
到此这篇关于Docker 数据存储路径之解决默认docker路径位置磁盘空间不足的问题的文章就介绍到这了,更多相关docker路径位置磁盘空间不足内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!