1、 确认 Docker 完全没在运行

sudo systemctl stop docker.socket
sudo systemctl stop docker
sudo systemctl stop containerd

2、 创建 Docker 数据目录

mkdir -p /data/docker

给权限(推荐):

chown -R root:root /data/docker
chmod 711 /data/docker

3、 指定 Docker 使用 /data/docker

创建或编辑配置文件:

nano /etc/docker/daemon.json

写入 完整内容(如果文件原来不存在,直接粘贴即可):

{
  "data-root": "/data/docker"
}

保存退出。

4、将 containerd 数据迁移到 /data/docker/containerd:

sudo mv /var/lib/containerd /data/docker/containerd

5、修改 containerd 配置(通常 /etc/containerd/config.toml):

root = "/data/docker/containerd"
state = "/data/docker/containerd/state"

6、启动 Docker

systemctl daemon-reexec
systemctl start containerd
systemctl start docker

7、验证是否生效(关键一步)

docker info | grep "Docker Root Dir"
ls /data/docker_new/containerd/io.containerd.content.v1.content
ls /data/docker_new/containerd/io.containerd.snapshotter.v1.overlayfs