温馨提示×

ubuntu docker怎么迁移数据

小樊
45
2026-09-22 14:26:42
栏目: 智能运维

在 Ubuntu 上迁移 Docker 数据,通常是指迁移 Docker 的存储目录(镜像、容器、卷等),或者迁移某个容器的数据。下面分情况说明,最常用的是第一种。


一、迁移 Docker 默认数据目录(/var/lib/docker)

Docker 默认把数据放在 /var/lib/docker,磁盘满了或想换大盘时常需要迁移。

1. 停止 Docker 服务

sudo systemctl stop docker
sudo systemctl stop docker.socket

2. 拷贝原数据到新目录

假设新目录是 /data/docker:

sudo rsync -avzP /var/lib/docker /data/docker

用 rsync 比 cp 更安全,支持断点续传

3. 修改 Docker 配置

编辑(没有就新建):

sudo nano /etc/docker/daemon.json

加入:

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

4. 重载并启动 Docker

sudo systemctl daemon-reload
sudo systemctl start docker

5. 验证

docker info | grep "Docker Root Dir"

应显示:

Docker Root Dir: /data/docker

确认无误后可删除旧目录:

sudo rm -rf /var/lib/docker

二、只迁移某个容器的数据(volume)

查看 volume

docker volume ls

备份 volume 数据

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(含镜像、容器)

导出镜像

docker save image_name > image.tar

在新机器导入

docker load < image.tar

容器不能直接“迁移”,需要:

  • 用 docker commit 成镜像
  • 或重新用 docker-compose 启动

四、常见注意事项

  • 迁移前必须停止 Docker
  • 使用 rsync 避免数据不一致
  • 如果是云服务器,建议直接用云盘快照
  • Docker Desktop(Ubuntu 很少用)路径不同

如果你能说明:

  • 是 整个 Docker 目录迁移
  • 还是 某个容器 / 数据库数据迁移
  • 是否 跨服务器

我可以给你更精确的命令。

0 踩