docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > docker路径位置磁盘空间不足

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"

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)镜像存储路径

(2)容器运行时数据

如需恢复默认配置,只需删除或修改 /etc/docker/daemon.json 并迁移数据回 /var/lib/docker

到此这篇关于Docker 数据存储路径之解决默认docker路径位置磁盘空间不足的问题的文章就介绍到这了,更多相关docker路径位置磁盘空间不足内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文