Docker 数据目录迁移完整流程

🚀 Docker 数据目录迁移完整流程

适用于将 Docker 默认数据目录 /var/lib/docker 迁移到新挂载盘(如 /data/raid1),在不动原始目录的前提下安全迁移,适合生产环境部署。

🧾 场景假设

  • 原数据目录:/var/lib/docker
  • 新磁盘挂载路径:/data/raid1
  • 目标迁移路径:/data/raid1/docker

🧱 一、准备工作

复制代码
docker info | grep "Docker Root Dir"

输出:

复制代码
Docker Root Dir: /var/lib/docker

⛔ 二、停止 Docker 服务

复制代码
sudo systemctl stop docker

📦 三、复制 Docker 数据到新目录

复制代码
sudo mkdir -p /data/raid1/docker
sudo rsync -aHAXP /var/lib/docker/ /data/raid1/docker/

📘 参数解释:

参数 作用
-a 归档模式,保留所有元数据等效于 -rlptgoD
-H 保留硬链接(Docker 镜像层关键)
-A 保留 ACL 权限
-X 保留扩展属性(xattr)
-P 显示进度 + 支持断点续传

⚙️ 四、修改 Docker 配置文件

复制代码
sudo tee /etc/docker/daemon.json > /dev/null <<EOF
{
  "registry-mirrors": ["https://docker.xuanyuan.me"],
  "data-root": "/data/raid1/docker"
}
EOF

🔐 五、检查权限

复制代码
sudo chown -R root:root /data/raid1/docker
sudo chmod -R u+rwX /data/raid1/docker

🔄 六、启动 Docker

复制代码
sudo systemctl daemon-reexec
sudo systemctl start docker

🔍 七、验证迁移结果

复制代码
docker info | grep "Docker Root Dir"

docker images
docker ps -a
  • 查看目录是否生效:
  • 列出镜像和容器:

🛡 八、保留原目录以便回滚

复制代码
sudo mv /var/lib/docker /var/lib/docker.bak

🔙 九、回滚方案(如果失败)

复制代码
{
  "registry-mirrors": ["https://docker.xuanyuan.me"],
  "data-root": "/var/lib/docker"
}

sudo systemctl daemon-reexec
sudo systemctl start docker

📌 十、总结

项目 说明
迁移方式 rsync 复制,无需破坏原目录
可靠性 高,可随时回滚
安全性 原数据保留,风险低
适用场景 加新磁盘,空间扩容
相关推荐
Zhu7582 小时前
在Docker环境部署ApacheGuacamole,对接PG数据库
数据库·docker·容器
少陽君3 小时前
Docker 部署 Loki + Promtail + Grafana 日志监控栈
docker·容器·grafana
独自归家的兔3 小时前
2026年7月2日 Docker 容器化部署 PaddleOCR-VL 实战(OpenAI 协议兼容 HTTP 调用)
运维·docker·容器
蜀道山老天师4 小时前
一文吃透 K8s:Deployment 滚动更新与版本回滚
云原生·容器·kubernetes
胖胖雕4 小时前
利用阿里云与docker部署Certimate
阿里云·docker·云计算
会飞的土拨鼠呀5 小时前
Docker 容器维护手册
docker·容器·eureka
hhb_6185 小时前
云原生AI工作流分布式调度实战
人工智能·云原生
慕伏白5 小时前
【慕伏白】Docker 常用指令
docker·容器·eureka
阿里云云原生5 小时前
明文不扩散,日志仍可用:阿里云可观测敏感数据保护方案
云原生
java_logo5 小时前
Docker 部署 Trilium Notes 完整教程:自建大型知识库
docker·容器·trilium·trilium note·trilium部署·docker部署trilium·trilium部署文档