在 CentOS 上使用 Docker 迁移容器,常见有几种方式,取决于你是要迁移整个容器(含数据),还是只迁移镜像+重新创建容器。下面按实用程度给你讲。
适合:容器是用
-v或 volume 挂载数据的
docker commit 容器名 新镜像名
docker save -o myimage.tar 新镜像名
scp myimage.tar root@目标IP:/root/
docker load -i myimage.tar
docker run -d \
--name 容器名 \
-v /data:/data \
新镜像名
✅ 优点:干净、可控
❌ 缺点:需手动处理数据目录
docker export 容器名 > container.tar
cat container.tar | docker import - 新镜像名
docker run -d --name 容器名 新镜像名
⚠️ 注意:
适合:整个 Docker 环境搬走
systemctl stop docker
tar czf docker-data.tar.gz /var/lib/docker
scp docker-data.tar.gz root@目标IP:/root/
systemctl stop docker
rm -rf /var/lib/docker
tar xzf docker-data.tar.gz -C /
systemctl start docker
✅ 容器、镜像、网络全都在
❌ 目标机 Docker 版本尽量一致
如果你用的是 docker-compose.yml:
docker-compose pull
docker-compose up -d
只需要:
docker-compose.yml/var/lib/docker 权限)如果你愿意,可以告诉我:
我可以给你一套精准迁移命令。