在 CentOS 上迁移 Docker 数据,常见场景有 迁移镜像/容器数据目录、迁移容器卷数据、整机迁移 Docker 环境。下面按常见需求说明。
适用于:磁盘空间不足,想把 Docker 数据挪到新磁盘。
systemctl stop docker
假设新目录是 /data/docker
mkdir -p /data/docker
rsync -avz /var/lib/docker/ /data/docker/
编辑或新建:
vim /etc/docker/daemon.json
内容:
{
"data-root": "/data/docker"
}
systemctl start docker
docker info | grep "Docker Root Dir"
docker volume ls
docker run --rm -v 卷名:/volume -v $(pwd):/backup busybox \
tar czf /backup/volume.tar.gz -C /volume .
docker run --rm -v 新卷名:/volume -v $(pwd):/backup busybox \
tar xzf /backup/volume.tar.gz -C /volume
docker save 镜像名 > image.tar
docker load < image.tar
docker export 容器名 > container.tar
docker import container.tar 新镜像名
/var/lib/dockerdaemon.jsonrsync 比 cp 更安全restorecon -Rv /data/docker
如果你能说明是 换服务器 / 换硬盘 / 只迁数据库容器,我可以给你更精确的命令。