最稳妥方式是修改/etc/docker/daemon.json中的data-root参数:先停服务,再用rsync迁移/var/lib/docker到新路径,配置data-root后重启验证;需确保新路径已创建、授权且持久挂载。

Docker 默认存储路径是 /var/lib/docker,修改它需要在 Docker 服务启动前配置 daemon.json,并确保原有数据迁移或清空,否则可能启动失败。
确认当前存储路径
运行以下命令查看 Docker 实际使用的根目录:
docker info | grep "Docker Root Dir"
输出类似 Docker Root Dir: /var/lib/docker,说明当前使用默认路径。
修改 daemon.json 配置文件
编辑或新建 Docker 守护进程配置文件:
sudo nano /etc/docker/daemon.json
写入新路径(例如改到 /data/docker):
{
"data-root": "/data/docker"
}
注意:
- 路径必须是绝对路径
- 目录需提前创建并赋予 docker 用户读写权限
- 不要与其他服务共用该目录,避免权限或空间冲突
迁移或清空旧数据
如果原 /var/lib/docker 中已有镜像、容器等数据,有两种选择:
- 迁移数据:停掉 Docker 服务后,用
rsync同步整个目录(含隐藏文件)到新路径,再更新配置 - 重置数据:若测试环境或可丢弃旧数据,直接清空
/var/lib/docker(先备份重要镜像或容器)
执行迁移示例:
sudo systemctl stop docker<br>sudo rsync -avz /var/lib/docker/ /data/docker/<br>sudo chown -R root:root /data/docker
重启 Docker 并验证
重新加载配置并启动服务:
sudo systemctl daemon-reload<br>sudo systemctl restart docker
验证是否生效:
docker info | grep "Docker Root Dir"
输出应显示新路径,且运行 docker run hello-world 成功即表示配置正常。











