相看 docker 存储位置

看数据存哪了

1
docker info | grep "Docker Root Dir"

不同类型的数据对应不同子目录:

  • 镜像层(image layers):/var/lib/docker/overlay2/
  • 构建缓存(build cache):/var/lib/docker/buildkit/
  • 容器文件系统:/var/lib/docker/containers/
  • 网络配置:/var/lib/docker/network/
  • 卷(volumes):/var/lib/docker/volumes/

迁移 docker 数据

1. 停掉 Docker 服务

1
2
sudo systemctl stop docker
sudo systemctl stop docker.socket

确认已停:

1
systemctl status docker

2. 创建新的目标目录

1
sudo mkdir -p /mnt/data/docker

(确保 /mnt/data 是挂载到大分区的)


3. 把原目录完整复制过去

推荐用 rsync,避免软链接时出现权限/稀疏文件问题:

1
sudo rsync -aHAX --delete /var/lib/docker/ /mnt/data/docker/

(注意:末尾的 / 很重要,确保复制的是内容而不是目录本身)


4. 备份原目录(保险)

1
sudo mv /var/lib/docker /var/lib/docker.bak

5. 创建符号链接

1
sudo ln -s /mnt/data/docker /var/lib/docker

6. 启动 Docker

1
sudo systemctl start docker

如果无报错、容器和镜像都正常看到 → 迁移成功。