在 Ubuntu 上迁移 Docker 数据,通常是指迁移 Docker 的存储目录(镜像、容器、卷等),或者迁移某个容器的数据。下面分情况说明,最常用的是第一种。
Docker 默认把数据放在 /var/lib/docker,磁盘满了或想换大盘时常需要迁移。
sudo systemctl stop docker
sudo systemctl stop docker.socket
假设新目录是 /data/docker:
sudo rsync -avzP /var/lib/docker /data/docker
用
rsync比cp更安全,支持断点续传
编辑(没有就新建):
sudo nano /etc/docker/daemon.json
加入:
{
"data-root": "/data/docker"
}
sudo systemctl daemon-reload
sudo systemctl start docker
docker info | grep "Docker Root Dir"
应显示:
Docker Root Dir: /data/docker
确认无误后可删除旧目录:
sudo rm -rf /var/lib/docker
docker volume ls
docker run --rm \
-v your_volume:/data \
-v $(pwd):/backup \
alpine tar czf /backup/volume.tar.gz -C /data .
docker run --rm \
-v new_volume:/data \
-v $(pwd):/backup \
alpine tar xzf /backup/volume.tar.gz -C /data
docker save image_name > image.tar
docker load < image.tar
容器不能直接“迁移”,需要:
docker commit 成镜像docker-compose 启动rsync 避免数据不一致如果你能说明:
我可以给你更精确的命令。