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/
参数说明:
-a保留权限、软链接、时间戳-P显示进度 + 支持断点续传
⚠️ 注意:路径末尾 / 很重要。
等待数据复制完成。
步骤 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
常见原因:
- JSON 格式错误
- 目标目录权限不对
- SELinux 限制(CentOS)
若开启 SELinux,可执行:
sudo chcon -Rt svirt_sandbox_file_t /mnt/data/docker-data
2️⃣ 容器丢失
如果容器不见了:
- 检查 data-root 是否写错
- 检查 rsync 是否完整复制
到此这篇关于Docker 修改存储位置(data-root 迁移完整指南)的文章就介绍到这了,更多相关docker 修改存储位置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
如何使用docker compose 部署ELK 8.X及监控
这篇文章主要介绍了如何使用docker compose 部署ELK 8.X及监控,包括前置环境配置及docker compose启动/停止的命令,感兴趣的朋友跟随小编一起看看吧2023-10-10
Docker安装Elasticsearch 8.x的实现示例
本文主要介绍了Docker安装Elasticsearch8.x,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2025-04-04


最新评论