游客
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 execdocker 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 exportdocker save保留镜像层历史,支持回滚。docker export只生成容器快照,文件小但丢失元数据。一般情况,save用于镜像备份,export用于制作基础镜像。
  • load vs importdocker 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/175.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
0
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
106
0
0
0
内卷太严重,已躺平...

MySQL 5.7+ root密码过期修复与配置优化(主机实测)

上一篇

Linux tee 命令:标准输出分流与文件写入功能详解

下一篇
评论区
内容为空

这一切,似未曾拥有

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