温馨提示×

ubuntu docker如何迁容器

小樊
47
2026-09-01 10:06:21
栏目: 智能运维

在 Ubuntu 上“迁移 Docker 容器”通常有几种常见场景,下面按最实用、最安全的方式给你讲清楚。


一、推荐方式(标准做法):迁移镜像 + 重新跑容器

适用:换机器、换服务器、备份恢复

1️⃣ 在源机器(旧 Ubuntu)

查看容器:

docker ps -a

提交容器为镜像(如果容器有改动):

docker commit 容器名 镜像名:tag

导出镜像:

docker save 镜像名:tag -o myimage.tar

拷贝到目标机器:

scp myimage.tar user@目标IP:/path/

2️⃣ 在目标机器(新 Ubuntu)

导入镜像:

docker load -i myimage.tar

运行容器:

docker run -d --name 容器名 镜像名:tag

优点:干净、可控、官方推荐
缺点:需重新配置挂载、端口、环境变量


二、直接导出容器(不推荐但可用)

docker export 容器ID -o container.tar

导入为镜像:

docker import container.tar 新镜像名:tag

⚠️ 注意:

  • 丢失历史层
  • 不会保留 volume
  • 不是真正“容器”,是文件系统

三、连数据一起迁移(重点)

如果有数据卷(volume)

查看:

docker inspect 容器名 | grep Mounts

备份 volume:

docker run --rm -v 卷名:/data -v $(pwd):/backup busybox \
tar cvf /backup/volume.tar /data

恢复:

docker run --rm -v 卷名:/data -v $(pwd):/backup busybox \
tar xvf /backup/volume.tar -C /

四、Docker Compose 项目迁移(最推荐)

如果原来是 compose:

docker compose down
scp -r 项目目录 目标机器
docker compose up -d

✅ 最适合生产环境


五、整机 Docker 迁移(简单粗暴)

停止 Docker:

sudo systemctl stop docker

拷贝目录:

/var/lib/docker

到新机器同样位置,再启动:

sudo systemctl start docker

⚠️ 不推荐跨版本、跨系统


六、快速选择建议

场景 建议方式
换服务器 镜像导出导入
有数据 镜像 + volume
生产环境 Docker Compose
临时测试 export / import

如果你愿意,可以告诉我:

  • 是否用了 volume
  • 是否 docker compose
  • 同机还是跨机

我可以直接给你一套可复制的命令

0