You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移/var/lib/docker目录后Docker启动失败,求技术解决方法

迁移Docker数据目录后启动失败求助

因磁盘空间不足,尝试迁移/var/lib/docker目录,按以下步骤操作后启动Docker失败:

  1. 停止Docker守护进程
service docker stop
  1. 创建/编辑/etc/docker/daemon.json配置文件:
{
    "data-root": "/path/to/new/docker/location",
    "storage-driver": "overlay2"
}
  1. 修改/lib/systemd/system/docker.service中的ExecStart行:
ExecStart=/usr/bin/dockerd --data-root /path/to/new/docker/location -H fd:// --containerd=/run/containerd/containerd.sock

曾尝试用-g替换--data-root,两种方式均无效。

  1. 复制Docker数据到新目录:
rsync -aP /var/lib/docker/ /path/to/new/docker/location
  1. 执行启动命令时出错:
service docker start

错误截图:
Docker启动错误截图

此前尝试过网上类似问题的解决方案均无效,特此求助。


解决方案

1. 修复新目录权限

Docker进程需要对新数据目录拥有完整权限,执行以下命令:

chown -R root:root /path/to/new/docker/location
chmod -R 700 /path/to/new/docker/location

2. 清理冲突配置

同时在daemon.json和docker.service中配置data-root会导致冲突,二选一即可:

  • 保留daemon.json配置:恢复docker.service的默认ExecStart行:
    ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
    
  • 保留docker.service配置:删除daemon.json中的data-root字段。

3. 重新加载systemd配置

修改docker.service后必须执行重载,否则修改不生效:

systemctl daemon-reload

4. 验证新目录路径

确认目标路径是存在的绝对路径,无拼写错误:

ls -ld /path/to/new/docker/location

5. 查看详细错误日志

通过journalctl获取更精准的错误信息,定位问题根源:

journalctl -u docker.service -xe

6. 重新启动Docker

完成上述操作后,重新启动服务:

service docker start

内容的提问来源于stack exchange,提问作者happy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 13:32:42