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启动问题docker is starting…
这篇文章主要给大家介绍了关于如何解决Docker启动问题docker is starting…的相关资料,文中通过图文将解决的过程介绍的非常详细,需要的朋友可以参考下2023-10-10
docker容器在uos-12038.101上启动报错的解决办法
这篇文章主要介绍了docker容器在uos-12038.101上启动报错的问题,解决方案是需要在/etc/systemd/system/或者 /usr/lib/systemd/system/2024-03-03
找到docker.service文件,在ExecStart=/usr/bin/dockerd后面添加 --default-ulimit nofile=65536:65536参数,需要的朋友可以参考下
docker-maven-plugin打包镜像并上传到私有仓库
本文主要介绍了docker-maven-plugin打包镜像并上传到私有仓库,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2021-09-09
Docker容器内无法解析域名:Temporary failure in name resolution
本文主要介绍了Docker容器内无法解析域名:Temporary failure in name resolution,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2026-04-04
Docker版Percona Xtrabackup全量压缩脚本方式
本文介绍了如何在Linux环境下使用Percona XtraBackup进行MySQL数据库的每天定时备份,并通过脚本实现备份数据的压缩、日志管理以及定时任务的设置2026-02-02
docker-compose网络配置- IP 主机名 hosts配置方式
这篇文章主要介绍了docker-compose网络配置- IP 主机名 hosts配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-01-01


最新评论