1. 为什么需要迁移Docker存储位置
刚接触Docker的新手可能不知道,默认情况下Docker会把所有镜像、容器、卷和网络配置都存储在/var/lib/docker目录。这个设计在早期没什么问题,但随着使用时间增长,你会发现系统盘空间被快速吞噬。我去年就遇到过一台服务器因为Docker占满根分区导致系统崩溃的情况。
迁移Docker的data-root目录主要有三个典型场景:
- 系统盘空间不足(特别是云服务器默认只有40G系统盘)
- 需要将数据存储到性能更好的磁盘(比如把/var/lib/docker挂载到SSD)
- 企业环境需要统一存储到NAS或专用存储服务器
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 迁移前的关键准备工作
2.1 检查当前Docker存储配置
首先用这个命令查看当前data-root位置:
bash复制docker info | grep "Docker Root Dir"
在我的测试机上输出是:
code复制 Docker Root Dir: /var/lib/docker
2.2 计算现有数据量
执行以下命令查看当前Docker占用空间:
bash复制sudo du -sh /var/lib/docker
重要提示:如果数据量超过10GB,建议在业务低峰期操作,大型迁移可能需要30分钟以上
2.3 准备目标目录
假设我们要迁移到/data/docker:
bash复制sudo mkdir -p /data/docker
sudo chown root:root /data/docker
sudo chmod 0711 /data/docker
3. 完整迁移操作步骤
3.1 停止Docker服务
bash复制sudo systemctl stop docker
sudo systemctl stop docker.socket
注意:确保所有容器都已停止,可以用
docker ps -a检查
3.2 迁移数据文件
使用rsync进行可靠复制:
bash复制sudo rsync -avxP /var/lib/docker/ /data/docker/
参数说明:
-a:归档模式,保留所有属性
