温馨提示×

centos docker怎么迁移容器

小樊
40
2026-09-21 01:56:33
栏目: 智能运维

CentOS 上使用 Docker 迁移容器,常见有几种方式,取决于你是要迁移整个容器(含数据),还是只迁移镜像+重新创建容器。下面按实用程度给你讲。


一、最推荐方式:迁移镜像 + 挂载数据(标准做法)

适合:容器是用 -v 或 volume 挂载数据的

1. 在源服务器导出镜像

docker commit 容器名 新镜像名
docker save -o myimage.tar 新镜像名

2. 拷贝到目标服务器

scp myimage.tar root@目标IP:/root/

3. 在目标服务器导入镜像

docker load -i myimage.tar

4. 启动容器(注意挂载目录)

docker run -d \
  --name 容器名 \
  -v /data:/data \
  新镜像名

优点:干净、可控
缺点:需手动处理数据目录


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

1. 导出容器

docker export 容器名 > container.tar

2. 拷贝到目标机器

3. 导入为镜像

cat container.tar | docker import - 新镜像名

4. 运行

docker run -d --name 容器名 新镜像名

⚠️ 注意:

  • 不会保留 volume
  • 不会保留容器状态(如 ENV、端口)
  • 一般只用于临时迁移

三、整机 Docker 数据迁移(最省事)

适合:整个 Docker 环境搬走

1. 停止 Docker

systemctl stop docker

2. 打包 Docker 数据目录

tar czf docker-data.tar.gz /var/lib/docker

3. 拷贝到目标机并解压

scp docker-data.tar.gz root@目标IP:/root/

4. 目标机覆盖并启动

systemctl stop docker
rm -rf /var/lib/docker
tar xzf docker-data.tar.gz -C /
systemctl start docker

✅ 容器、镜像、网络全都在
❌ 目标机 Docker 版本尽量一致


四、使用 docker-compose(强烈推荐)

如果你用的是 docker-compose.yml

docker-compose pull
docker-compose up -d

只需要:

  • 拷贝 docker-compose.yml
  • 拷贝数据卷目录

五、常见坑提醒

  • ✅ 数据一定要用 volume 或 -v
  • ❌ 不要把数据放在容器内部
  • ✅ CentOS 注意 SELinux(/var/lib/docker 权限)

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

  • 单容器还是多个
  • 有没有 数据库
  • 同内网还是跨云

我可以给你一套精准迁移命令

0