需迁移Docker镜像存储路径至更高性能或更大空间挂载点:一、停止Docker并确认当前路径;二、用rsync完整复制数据至新路径;三、修改daemon.json配置data-root;四、必要时通过systemd覆盖启动参数;五、备份原目录后重启并验证。

如果您在宝塔面板中运行Docker服务,但默认镜像存储路径(通常为/var/lib/docker)所在磁盘空间不足或需要调整到更高性能的挂载点,则需迁移Docker镜像的存储路径。以下是执行此操作的具体步骤:
一、停止Docker服务并确认当前存储路径
迁移前必须确保Docker完全停止,避免文件被占用或损坏。同时需确认当前实际使用的镜像根目录,防止误操作影响已有容器和镜像。
1、通过SSH登录服务器,执行命令:systemctl stop docker。
2、运行命令:docker info | grep "Docker Root Dir",记录输出中的当前路径(如/var/lib/docker)。
3、检查目标新路径是否存在且具备足够空间,例如:df -h /data/docker。
二、复制镜像数据至新路径
该步骤将原存储路径下的全部内容完整迁移至新位置,保留所有镜像、容器、卷及网络配置。必须使用rsync以保障权限、符号链接与时间戳一致性。
1、创建新路径目录:mkdir -p /data/docker。
2、执行同步命令:rsync -avz --progress /var/lib/docker/ /data/docker/。
3、验证新路径下文件完整性:ls -l /data/docker/ | head -5,确认存在image、overlay2、containers等关键子目录。
三、修改Docker守护进程配置文件
Docker启动时依据daemon.json中指定的data-root参数加载镜像存储路径。需编辑该配置文件并指向新路径,否则重启后仍将使用原位置。
1、打开配置文件:nano /etc/docker/daemon.json。
2、若文件为空或无data-root字段,插入以下JSON内容(注意逗号语法):{"data-root": "/data/docker"}。
3、保存并退出编辑器(Nano中按Ctrl+O回车,再按Ctrl+X)。
四、更新Docker服务启动参数(备用方案)
当daemon.json方式不生效或系统使用旧版Docker(如CentOS 7默认包),可通过修改systemd服务文件强制指定根路径。
1、执行命令:systemctl edit docker。
2、在打开的编辑器中输入以下内容:[Service]\nExecStart=\nExecStart=/usr/bin/dockerd --data-root /data/docker -H fd:// --containerd=/run/containerd/containerd.sock。
3、重载systemd配置:systemctl daemon-reload。
五、清理原路径并重启Docker服务
完成配置后,需移除原路径下残留的Docker运行时文件(非数据目录),然后启动服务验证迁移是否成功。注意:仅删除空目录或明确确认已无用的软链接,不可直接rm -rf /var/lib/docker。
1、执行命令:mv /var/lib/docker /var/lib/docker.bak,临时重命名原目录作为备份。
2、启动Docker:systemctl start docker。
3、验证路径变更生效:docker info | grep "Docker Root Dir",输出应显示/data/docker。











