Aihelps
发布于 2025-07-11 / 2 阅读
0
0

基于CentOS系统的Docker迁移方案

修改 Docker 数据目录为 /home/docker详细、安全的操作步骤,适用于环境(CentOS,Docker 默认安装在 /var/lib/docker,且 /home 盘空间充足)。


✅【目标】

将 Docker 的默认数据目录从 /var/lib/docker 改为 /home/docker,释放 / 根分区的空间。


🛠️ 详细安全操作步骤

1. 查看当前 Docker 目录

确认当前目录使用的是 /var/lib/docker

docker info | grep "Docker Root Dir"

输出示例:

Docker Root Dir: /var/lib/docker

2. 停止 Docker 服务

systemctl stop docker

确保 Docker 完全停止:

ps -ef | grep docker

如果还有 docker 相关进程,继续停止或杀掉。


3. 创建新的目录并赋权限

mkdir -p /home/docker
chown root:root /home/docker
chmod 711 /home/docker

4. 迁移原有 Docker 数据(安全迁移)

使用 rsync 代替 mv,保证拷贝完整:

rsync -aP /var/lib/docker/ /home/docker/

如果不想安装 rsync,可以使用 cp 但风险略高:

cp -a /var/lib/docker/. /home/docker/

5. 备份原始目录(以防万一)

mv /var/lib/docker /var/lib/docker.bak

6. 配置 Docker 使用新目录

编辑 Docker 的配置文件:

vi /etc/docker/daemon.json

如果文件不存在,就新建,添加如下内容:

{
  "data-root": "/home/docker"
}

保存退出。


7. 启动 Docker 并验证

systemctl start docker

验证是否生效:

docker info | grep "Docker Root Dir"

输出应为:

Docker Root Dir: /home/docker

确认没有报错后,可以删掉旧备份:

rm -rf /var/lib/docker.bak

🔁 可选:开机自动启动 Docker

systemctl enable docker

✅ 检查效果

df -h

此时 / 根分区应该释放了 50G 左右空间,Docker 已使用 /home


✅ 总结

操作

命令

停止 Docker

systemctl stop docker

迁移数据

rsync -aP /var/lib/docker/ /home/docker/

配置新路径

/etc/docker/daemon.json

启动验证

systemctl start docker && docker info

清理旧数据

rm -rf /var/lib/docker.bak



评论