当前位置: 首页 > news >正文

本地构建的 Docker 镜像迁移到另一台电脑上运行

本地构建的 Docker 镜像迁移到另一台电脑上运行

  • 方法一:使用 `docker save` 和 `docker load`(推荐)
    • 适用场景
    • 操作步骤
  • 方法二:通过 Docker Hub 中转
    • 适用场景
    • 操作步骤
  • 方法三:容器导出(仅文件系统备份)
    • 适用场景
    • 操作步骤
  • 方法对比与选择建议
  • 注意事项
  • 📊 扩展场景:迁移数据卷(如需同步数据库等)

要将本地构建的 Docker 镜像迁移到另一台电脑上运行,可通过以下三种方法实现。以下是具体操作步骤及适用场景分析:


方法一:使用 docker savedocker load(推荐)

适用场景

镜像较大或需完整保留元数据(历史层、标签、环境变量)时使用,适合离线环境迁移。

操作步骤

  1. 导出镜像为 .tar 文件
    在源电脑执行:

    docker save -o my_image.tar <镜像名:标签>
    # 示例:导出名为 yolov8-app 的镜像
    docker save -o yolov8-app.tar yolov8-app:latest
    
  2. 传输文件到目标电脑

    • 局域网传输:使用 scp 命令:
      scp yolov8-app.tar user@目标电脑IP:/目标路径/
      
    • 离线传输:通过 U 盘、云存储或共享目录复制文件。
  3. 在目标电脑导入镜像

    docker load -i yolov8-app.tar
    
  4. 验证与运行

    # 查看是否导入成功
    docker images
    # 运行容器
    docker run -p 8000:8000 yolov8-app:latest
    

方法二:通过 Docker Hub 中转

适用场景

镜像需频繁更新、多设备共享或目标电脑可联网时使用。

操作步骤

  1. 推送镜像到 Docker Hub

    # 登录 Docker Hub
    docker login
    # 标记镜像(格式:用户名/仓库名:标签)
    docker tag yolov8-app:latest 你的用户名/yolov8-repo:latest
    # 推送镜像
    docker push 你的用户名/yolv8-repo:latest
    
  2. 在目标电脑拉取镜像

    docker pull 你的用户名/yolov8-repo:latest
    

方法三:容器导出(仅文件系统备份)

适用场景

仅需迁移容器当前状态(不保留历史层和元数据),适合轻量化快速迁移。

操作步骤

  1. 导出容器为 .tar 文件

    # 先获取容器ID
    docker ps -a
    # 导出容器(非镜像)
    docker export -o my_container.tar <容器ID>
    
  2. 导入为镜像并运行
    在目标电脑执行:

    cat my_container.tar | docker import - my_new_image:latest
    docker run -it my_new_image:latest /bin/bash
    

方法对比与选择建议

方法保留历史层适用场景传输效率
save/load✅ 是完整备份、离线迁移中等
Docker Hub✅ 是多设备共享、频繁更新
容器导出(export)❌ 否仅需文件系统、快速测试

注意事项

  1. 权限问题
    • 若镜像包含敏感数据,推送至 Docker Hub 前需设为私有仓库。
  2. 空间清理
    • 迁移后删除临时 .tar 文件:rm *.tar
  3. 版本冲突
    • 目标电脑若存在同名镜像,需先删除:docker rmi <旧镜像ID>

📊 扩展场景:迁移数据卷(如需同步数据库等)

若容器依赖数据卷(如数据库文件),需额外迁移卷数据:

# 在源电脑备份数据卷
docker run --rm -v <卷名>:/data -v $(pwd):/backup ubuntu tar cvf /backup/volume.tar /data
# 将 volume.tar 复制到目标电脑后恢复
docker run -v <新卷名>:/data -v $(pwd):/backup ubuntu tar xvf /backup/volume.tar -C /data

通过上述任一方法,即可实现 Docker 镜像的跨设备迁移。推荐优先使用 docker save/load 或 Docker Hub 方案,确保镜像完整性。(参考gpt)

http://www.dtcms.com/a/354442.html

相关文章:

  • Python自动化测试完整教程:pytest + selenium实战
  • Windows 环境下搭建移动端自动化测试环境(JDK + SDK + Node.js + Appium)
  • 【Rust】 4. 函数与闭包
  • React过渡更新:优化渲染性能的秘密
  • 在Excel和WPS表格中隔一行插入一个空白行
  • HarmonyOS 中的 sharedTransition:实现流畅的页面过渡动画
  • 从数字到价值:ESG评级的深层变革
  • 鸿蒙 5.1 深度解析:ArkUI 4.1 升级与分布式开发新范式
  • Linux 软件编程(十三)网络编程:TCP 并发服务器模型与 IO 多路复用机制、原理epoll
  • 【Windows】netstat命令解析及端口状态解释
  • 【PostgreSQL内核学习:通过 ExprState 提升哈希聚合与子计划执行效率(二)】
  • 现代前端状态管理:从原理到实战(Vue/React全栈方案)
  • 【自记】Python 中,对象的比较运算符(>, ==, <=, >=)对应特定的魔法方法详解
  • H5测试全攻略:要点解析
  • 一个工程多Module的微服务项目,如何在GitLab中配置CI/CD
  • MySQL数据库精研之旅第十三期:吃透用户与权限管理,筑牢数据库安全第一道防线
  • 深入解析Java并发编程与单例模式
  • 详解Log4j组件:工业级Java日志框架
  • Redis实战-点赞的解决方案
  • vue布局
  • LightGBM 在金融逾期天数预测任务中的经验总结
  • 2025年渗透测试面试题总结-36(题目+回答)
  • 2025年渗透测试面试题总结-37(题目+回答)
  • vue3 数据库 内的 字符 显示 换行符
  • LeetCode-238除自身以外数组的乘积
  • 基于单片机步进电机控制电机正反转加减速系统Proteus仿真(含全部资料)
  • codeforces(1045)(div2) E. Power Boxes
  • 2024年09月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • Kubernetes 的20 个核心命令分类详解
  • 深度学习11 Deep Reinforcement Learning