当前位置: 首页 > news >正文

Docker 数据存储路径(解决默认docker路径位置磁盘空间不足的情况)

用于迁移 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


http://www.lryc.cn/news/611677.html

相关文章:

  • 家庭宽带中的服务器如何被外网访问?
  • RequestBodyAdviceAdapter是什么有什么用
  • [Linux]学习笔记系列 -- [arm][debug]
  • MCP 协议:AI 时代的 “万能转接头”,从 “手动粘贴” 到 “万能接口”:MCP 协议如何重构 AI 工具调用规则?
  • Linux 中 Git 操作大全
  • Go语言 单元测试
  • 鸿蒙app 开发中 全局弹窗类的封装 基于PromptAction
  • LazyLLM教程 | 第3讲:大模型怎么玩:用LazyLLM带你理解调用逻辑与Prompt魔法!
  • AI_提示词Prompt
  • MCP-PromptX AI小说创作使用教程
  • 百度智能云给“数字人”发工牌
  • 纯血鸿蒙(HarmonyOS NEXT)应用开发完全指南
  • HarmonyOS 5 入门系列-鸿蒙HarmonyOS示例项目讲解
  • day20|学习前端
  • 合同全生命周期管理系统是什么?
  • 基于php的个人健康管理系统设计与实现/vue/php开发
  • 数据结构(四)内核链表、栈与队列
  • JAVA无人系统台球茶室棋牌室系统支持H5小程序APP公众号源码
  • Python Pandas.lreshape函数解析与实战教程
  • 基于Simulink/MWORKS的文字与开关量混合传输系统设计
  • Godot ------ 初级人物血条制作02
  • 符合网络安全的汽车OTA软件更新分发机制
  • DHCP 服务器练习
  • Nacos配置中心和数据隔离在idea中的实现
  • R4周打卡——Pytorch实现 LSTM火灾预测
  • Ansys Discovery 2025R2的主要增强功能:CFD仿真的亮点
  • 批量打印Excel条形码
  • 西门子PLC基础指令6:读取时钟指令、设置时钟指令、使能含义与注意
  • 《动手学深度学习》读书笔记—9.5机器翻译与数据集
  • miniExcel一个对象加一个对象列表导出