首页主机资讯ubuntu docker容器怎么迁移

ubuntu docker容器怎么迁移

时间2026-01-21 23:07:03发布访客分类主机资讯浏览540
导读:Ubuntu 下 Docker 容器迁移实操指南 常见迁移场景与选择 同机迁移 Docker 根目录(/var/lib/docker)到新磁盘或新路径,适用于磁盘扩容或分区调整。 跨机迁移容器到另一台 Ubuntu 主机,适用于更换服务器...

Ubuntu 下 Docker 容器迁移实操指南

常见迁移场景与选择

  • 同机迁移 Docker 根目录(/var/lib/docker)到新磁盘或新路径,适用于磁盘扩容或分区调整。
  • 跨机迁移容器到另一台 Ubuntu 主机,适用于更换服务器或灾备演练。
  • 迁移方式以镜像/容器导出导入与数据卷备份恢复为主,必要时结合 Docker Compose 重建运行参数。

同机迁移 Docker 存储目录

  • 步骤
    1. 查看当前 Docker 根目录
      docker info | grep “Docker Root Dir”
    2. 停止 Docker 服务
      sudo systemctl stop docker
    3. 同步数据到新位置(推荐 rsync 保留权限与属性)
      sudo rsync -aP /var/lib/docker/ /data/docker/
    4. 修改配置文件 /etc/docker/daemon.json,指定新的 data-root
      { “data-root”: “/data/docker” } 如文件不存在则新建;如已有其他配置,请在 JSON 对象中追加逗号后新增该键值。
    5. 启动 Docker 并验证
      sudo systemctl start docker
      docker info | grep “Docker Root Dir” # 应显示新路径
  • 回滚要点
    若异常,可恢复 daemon.json 并指向旧目录后重启;或保留旧目录一段时间待验证无误再清理。

跨机迁移容器到另一台 Ubuntu 主机

  • 方式 A 镜像与容器导出导入(简单通用)
    1. 在源机为运行中的容器生成新镜像
      docker commit < 容器ID或名称> myapp:migrate
    2. 导出镜像
      docker save -o myapp_migrate.tar myapp:migrate
    3. 将镜像传输到目标机
      scp myapp_migrate.tar user@目标IP:/path/
    4. 在目标机导入镜像
      docker load -i /path/myapp_migrate.tar
    5. 参考原容器启动参数运行(端口、卷、环境变量等保持一致)
      docker run -d --name myapp -p 80:80 -v /data:/app myapp:migrate
  • 方式 B 容器文件系统导出导入(不包含镜像历史与元数据)
    1. 源机导出容器文件系统
      docker export < 容器ID> -o container_fs.tar
    2. 目标机导入为镜像
      docker import container_fs.tar myapp:imported
    3. 按原参数启动
      docker run -d --name myapp myapp:imported
  • 方式 C 数据卷备份恢复(适用于数据库、业务数据等持久化)
    1. 备份卷(以卷名为 my_volume 为例)
      docker run --rm -v my_volume:/data -v $(pwd):/backup ubuntu tar cvf /backup/vol_backup.tar -C /data .
    2. 将备份文件传到目标机并恢复
      docker run --rm -v my_volume:/data -v $(pwd):/backup ubuntu tar xvf /backup/vol_backup.tar -C /data
  • 方式 D 使用 Docker Compose(推荐用于多容器应用)
    1. 在源机导出编排文件
      docker-compose config > docker-compose.yml
    2. 将镜像保存/推送至仓库(如需要)并拷贝 compose 文件到目标机
    3. 目标机启动
      docker-compose up -d
  • 迁移后一致性校验
    核对镜像、容器、卷、端口映射与关键数据是否完整;必要时比对应用日志与业务自检接口。

注意事项与最佳实践

  • 迁移前务必完整备份,先停机再拷贝,避免写入导致的数据不一致;跨机传输建议使用 scp/rsync 校验完整性。
  • 区分镜像与容器的导出导入差异:docker save/load 保留镜像层与历史,适合复用与分发;docker export/import 仅导出容器文件系统快照,更轻量但丢失镜像元数据与构建历史。
  • 有状态服务(数据库等)优先迁移数据卷或采用应用层备份恢复;仅迁移镜像/容器文件系统无法保证数据一致性。
  • 迁移完成后用 docker ps -a、docker images、docker volume ls 与业务自检确认运行状态与数据可用性。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu docker容器怎么迁移
本文地址: https://pptw.com/jishu/789217.html
ubuntu docker命令有哪些常用 ubuntu docker容器怎么备份

游客 回复需填写必要信息