docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > docker 修改存储位置

Docker 修改存储位置的步骤(data-root 迁移完整指南)

作者:赴前尘

本文详细介绍了如何在Linux+systemd环境下,将Docker的默认数据目录(data-root)迁移到其他磁盘空间充足的位置,包括迁移前的准备工作、具体步骤、配置修改、启动和验证等,以及常见问题的排查方法,感兴趣的朋友跟随小编一起看看吧

Docker 修改存储位置(data-root 迁移完整指南)

适用于 Linux + systemd 环境(CentOS / RHEL / Ubuntu / Debian 等)

一、迁移背景

Docker 默认数据目录:

/var/lib/docker

当系统盘空间不足时,通常需要将其迁移至数据盘,例如:

/mnt/data/docker-data

二、迁移前检查(强烈建议)

1️⃣ 查看当前 Docker 数据目录

docker info | grep "Docker Root Dir"

默认一般为:

Docker Root Dir: /var/lib/docker

2️⃣ 查看磁盘使用情况

df -h
du -sh /var/lib/docker

确认目标磁盘空间足够。

三、正式迁移步骤

步骤 1:停止 Docker 服务

⚠️ 必须先停止,否则可能造成数据损坏。

sudo systemctl stop docker

确认已停止:

sudo systemctl status docker

步骤 2:创建新数据目录

例如迁移到:

/mnt/data/docker-data

创建目录:

sudo mkdir -p /mnt/data/docker-data

设置权限(推荐):

sudo chown -R root:root /mnt/data/docker-data
sudo chmod 711 /mnt/data/docker-data

步骤 3:迁移数据(推荐使用 rsync)

sudo rsync -aP /var/lib/docker/ /mnt/data/docker-data/

参数说明:

⚠️ 注意:路径末尾 / 很重要。

等待数据复制完成。

步骤 4:修改 Docker 配置

编辑或创建配置文件:

sudo vim /etc/docker/daemon.json

添加或修改为:

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

⚠️ 如果文件中已有其他配置,确保 JSON 格式正确,例如:

{
  "registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"],
  "data-root": "/mnt/data/docker-data"
}

可以使用以下命令验证 JSON 格式:

cat /etc/docker/daemon.json | python -m json.tool

步骤 5:重新加载并启动 Docker

sudo systemctl daemon-reload
sudo systemctl start docker

检查状态:

sudo systemctl status docker

步骤 6:验证是否迁移成功

docker info | grep "Docker Root Dir"

确认输出为:

Docker Root Dir: /mnt/data/docker-data

再查看容器是否正常:

docker ps -a

步骤 7:确认无误后删除旧目录(可选)

⚠️ 确认 Docker 正常运行后再执行。

sudo rm -rf /var/lib/docker

四、常见问题排查

1️⃣ Docker 启动失败

查看日志:

journalctl -u docker -xe

常见原因:

若开启 SELinux,可执行:

sudo chcon -Rt svirt_sandbox_file_t /mnt/data/docker-data

2️⃣ 容器丢失

如果容器不见了:

到此这篇关于Docker 修改存储位置(data-root 迁移完整指南)的文章就介绍到这了,更多相关docker 修改存储位置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文