游客
Docker镜像容器导出导入机制详解

Docker镜像容器导出导入机制详解

一言准备中...

主要功能

  • 镜像拉取:从 Docker Hub 或私有仓库下载镜像。输入镜像名或 镜像名:tag,输出本地存储的完整镜像层。例如 docker pull nginx:latest 拉取最新版 Nginx。
  • 镜像导出为 tar:用 docker save 将镜像打包成 tar 文件。输入镜像名/ID 加输出路径,生成单文件,适合备份或离线迁移。支持多镜像打包到一个 tar。
  • tar 文件加载为镜像:通过 docker load -i 从 tar 文件恢复镜像。输入 tar 文件路径,输出完整镜像层。保留历史记录和元数据,支持回滚操作。
  • 容器导出为 tar:用 docker export 将运行中或停止的容器导出。输入容器名加输出路径,生成快照文件。文件体积比 docker save 小。
  • tar 导入为新镜像:用 docker import 从容器 tar 创建新镜像。输入 tar 文件并指定 新镜像名:Tag,输出不含历史层的扁平快照。不支持回滚。
  • 容器运行与管理:docker run -it -d --name 别名 镜像名:Tag /bin/bash 启动容器。docker ps -a 查看所有容器状态。docker stop 停止容器。docker exec 或 docker attach 进入容器。
  • 镜像删除:docker rmi -f 镜像名/ID 强制删除本地镜像。释放存储空间。

如何使用

  • 拉取镜像:docker pull 镜像名:tag
  • 保存镜像:docker save 镜像名 -o 路径/文件名.tar
  • 加载镜像:docker load -i 路径/文件名.tar
  • 导出容器:docker export -o 路径/文件名.tar 容器名
  • 导入容器为新镜像:docker import 文件名.tar 新镜像名:Tag
  • 运行容器并命名:docker run -it -d --name 别名 镜像名:Tag /bin/bash
  • 进入运行容器:docker exec -it 容器名 /bin/bash

核心优势

  • save vs export:docker save 保留镜像层历史,支持回滚。docker export 只生成容器快照,文件小但丢失元数据。一般情况,save 用于镜像备份,export 用于制作基础镜像。
  • load vs import:docker load 从 tar 恢复镜像,不能改名。docker import 允许为新镜像指定名称,但导入 save 文件可能报命令找不到错误。
  • 多镜像打包:docker save 支持将多个镜像打包到一个 tar。docker export 只能导出单个容器。实际使用时,离线环境用 save 配合 docker-compose.yml 更合适。

同类竞品对比

对比维度 Docker Podman containerd
镜像导出机制 docker save 生成 tar,保留全部层历史 podman save 类似,支持 OCI 格式 ctr image export,输出原始层
容器导出机制 docker export 导出快照,丢失历史 podman export 功能相同 不直接支持容器导出
导入重命名支持 docker import 支持,docker load 不支持 podman load 不支持重命名,podman import 支持 ctr image import 不支持重命名
多镜像打包 docker save 支持多镜像到单 tar podman save 支持多镜像 ctr 不支持多镜像打包
回滚能力 docker save/load 保留层历史,支持回滚 podman save/load 保留历史 ctr 镜像操作保留历史
文件体积 export 文件小于 save 类似 类似

应用场景

  • 离线环境部署:用 docker save 将多镜像打包,docker load 恢复。适合无法连接外网的服务器。
  • 基础镜像制作:用 docker export 导出运行中容器,docker import 导入为新镜像。适合自定义基础环境。
  • 镜像迁移:在不同主机间复制镜像。docker save 生成 tar,拷贝后 docker load 加载。
  • 容器快照备份:对容器做临时快照,用 docker export 导出,快速恢复特定状态。不支持历史回滚,所以只做单点备份。
  • 多版本管理:docker save 保留层历史,可回滚到之前版本。docker import 则不可回滚。

适用人群

  • 运维工程师:需要离线部署、镜像迁移、容器备份。用 save/load 处理多镜像组合。
  • 开发测试人员:构建自定义基础镜像,用 export/import 快速生成测试环境。
  • 系统管理员:管理多主机 Docker 环境,通过 tar 文件分发镜像或容器。
  • DevOps 工程师:在 CI/CD 流程中,用 docker save 打包镜像,docker load 在目标环境恢复。
  • 本文作者:站长
  • 本文链接: https://www.zhujishice.cn/vpsjc/175.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
0
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
454
0
0
0
内卷太严重,已躺平...

MySQL密码过期无法执行语句的终极修复方案

上一篇

Linux tee命令详解 数据流分流与日志保存实战

下一篇
评论区
内容为空

这一切,似未曾拥有

  • 复制图片
按住ctrl可打开默认菜单