当前位置: 首页 > 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.dtcms.com/a/317761.html

相关文章:

  • React(二):jsx事件绑定、条件渲染、列表渲染、jsx的本质、购物车案例
  • 玳瑁的嵌入式日记D13-0806(C语言)
  • Spring Boot部门管理系统:查询、删除、新增实战
  • IntelliJ IDEA 2025.1.4.1 中文版
  • Nacos配置中心和数据隔离在idea中的实现
  • NWinfo(硬件信息检测工具)v1.4.20绿色免费版,U盘随走随检,结果即刻导出
  • 借助Aspose.OCR ,使用 Python 提取JPG图像文本、将JPG图像转换为Word
  • 本地服务器端部署基于大模型的通用OCR项目——dots.ocr
  • 达梦数据库数据守护集群启动与关闭标准流程
  • docker安装FFmpeg
  • Pytest项目_day06(requests中Session的用法)
  • 引领GameFi 2.0新范式:D.Plan携手顶级财经媒体启动“龙珠创意秀”
  • SpringMVC基础
  • 关于 idea 里 properties 文件的中文乱码问题
  • 「iOS」————单例与代理
  • 使用PHP与Apache实现服务器端文件管理
  • 19day-人工智能-机器学习-分类算法-决策树
  • docker 部署Bedrock Connector
  • 希尔排序:高效插入排序的进阶之道
  • 从零开始部署Qwen3-8b大模型到本地
  • Centos 安装 redis
  • 17_INIT_WORKLinux内核模块
  • prefetch 下载 GEO 数据注意事项
  • 设计模式—桥梁模式(Bridge)
  • 移动端跨平台框架(支持Harmony、iOS、Android)
  • 《第十篇》深入解析 `MilvusKBService`:基于 Milvus 的知识库服务实现
  • 在线计算“蛋白-蛋白复合物”的MM/GBSA
  • KMP算法详解及应用指南
  • Cartographer安装测试与模块开发(四)--Cartographer纯定位思路
  • 【代码随想录day 12】 力扣 102.107.199. 二叉树的层序遍历