热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

docker的export命令和save命令区别

1、文件大小不同export导出的镜像文件体积小于save保存的镜像用户既可以使用dockerload来导入镜像存储文件到本地镜像库,也可以使用dockerimp

1、文件大小不同

export 导出的镜像文件体积小于 save 保存的镜像

用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import 来导入一个容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。

2、是否可以对镜像重命名

docker import 可以为镜像指定新名称

docker load 不能对载入的镜像重命名

3、是否可以同时将多个镜像打包到一个文件中

docker export 不支持

docker save 支持

4、是否包含镜像历史

export 导出( import 导入)是根据容器拿到的镜像,再导入时会丢失镜像所有的历史记录和元数据信息(即仅保存容器当时的快照状态),所以无法进行回滚操作。

save 保存( load 加载)的镜像,没有丢失镜像的历史,可以回滚到之前的层( layer )。

5、应用场景不同

docker export 的应用场景:主要用来制作基础镜像,比如我们从一个 ubuntu 镜像启动一个容器,然后安装一些软件和进行一些设置后,使用 docker export 保存为一个基础镜像。然后,把这个镜像分发给其他人使用,比如作为基础的开发环境。

docker save 的应用场景:如果我们的应用是使用 docker-compose.yml 编排的多个镜像组合,但我们要部署的客户服务器并不能连外网。这时就可以使用 docker save 将用到的镜像打个包,然后拷贝到客户服务器上使用 docker load 载入。

6、命令


直接打包 容器( export / import )

1) 使用 docker ps -a 查看容器的信息

(下面的 export 方式会导致载入 镜像 后名字标签都为 )( 有问题!!!!!!!! )

docker export container_id > <filename>.tar # &#xff08;有问题&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff09;

正确的方式应该是&#xff1a;

docker save <repository>:<tag> > <filename>.tar

使用 docker export 命令打包为 压缩包

docker export container_id > | gzip > <filename>.tar.gz

2&#xff09;使用 docker import 命令导入

docker load < <filename>.tar

使用 docker import 导入 压缩包&#96;

docker import <filename>.tar.gz < <repository>:<tag>

3&#xff09;如果 docker import 载入新的镜像后 repositorytag 名称都为 none &#xff0c;那么可以通过 tag 的命令来增加名字、标签

docker tag <IMAGE ID> <repository>:<tag>

容器 制作为 镜像 后打包&#xff08; save / load &#xff09;

1&#xff09;使用 docker commit 命令制作镜像

docker commit -a "author" -m "message" 27a2f7ad543b new_repository:v1
# -a 作者名 -m 备注信息 [容器 ID] [给新的镜像命名]

2&#xff09;使用 docker save 命令打包

docker save -o <filename>.tar <repository>:<tag>

将多个镜像打包

docker save -o <filename>.tar <repository1>:<tag1> <repository2>:<tag2>

使用 docker save 命令打包为 压缩包

docker save <repository>:<tag> | gzip > <filename>.tar.gz

3&#xff09;使用 docker load 命令导入

docker load < <filename>.tar

使用 docker load 导入 压缩包&#96; 的镜像

gunzip -c <filename>.tar.gz | docker load


推荐阅读
  • 本文详细介绍了在Mac操作系统中使用Python连接MySQL数据库的方法,包括常见的错误处理及解决方案。 ... [详细]
  • 本文详细介绍了如何在Vue项目中集成和配置XGPlayer视频插件,包括安装步骤、基本配置以及常见问题的解决方法。 ... [详细]
  • 本文记录了作者在尝试启用IIS的Gzip压缩功能时遇到的挑战,特别是当企业内部网络使用ISA服务器作为代理时的问题。文章详细描述了问题的发现过程、解决步骤以及最终的解决方案。 ... [详细]
  • electronvue使用electronupdater实现自动更新
    今天呢,给大家带来一篇干货满满的electron-vue自动升级的教程,话不多说,开始我的表演!配置文件package.jsonbu ... [详细]
  • CSS模块化命名 ... [详细]
  • Node.js模块化的优势及实践
    本文探讨Node.js模块化的重要性和具体实现方式,包括其带来的代码复用性增强、可维护性提升、以及如何有效避免命名冲突等问题。 ... [详细]
  • 本文详细介绍了如何在ReactJS项目中集成Onsen-UI的ActionSheetButton组件,并通过具体示例展示了其使用方法及效果。 ... [详细]
  • 前端技术分享——利用Canvas绘制鼠标轨迹
    作为一名前端开发者,我已经积累了Vue、React、正则表达式、算法以及小程序等方面的技能,但Canvas一直是我的盲区。因此,我在2018年为自己设定了一个新的学习目标:掌握Canvas,特别是如何使用它来创建CSS3难以实现的动态效果。 ... [详细]
  • 本文介绍了如何在React应用中实现延迟加载以提高性能,以及如何利用自定义Hook和高阶组件(HOC)来增强组件功能。通过这些技术,开发者可以构建更加高效和可维护的应用。 ... [详细]
  • 本文探讨了异步编程的发展历程,从最初的AJAX异步回调到现代的Promise、Generator+Co以及Async/Await等技术。文章详细分析了Promise的工作原理及其源码实现,帮助开发者更好地理解和使用这一重要工具。 ... [详细]
  • 本文介绍了.hbs文件作为Ember.js项目中的视图层,类似于HTML文件的功能,并详细讲解了如何在Ember.js应用中集成Bootstrap框架及其相关组件的方法。 ... [详细]
  • 小编给大家分享一下Vue3中如何提高开发效率,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获, ... [详细]
  • 如何处理PHP缺少扩展的问题
    本文将详细介绍如何解决PHP环境中缺少扩展的问题,包括检查当前环境、修改配置文件以及验证修改是否生效的具体步骤,帮助开发者更好地管理和使用PHP扩展。 ... [详细]
  • 关于python中的字符串,python里面字符串 ... [详细]
  • 本文详细介绍了Python中的流程控制与条件判断技术,包括数据导入、数据变换、统计描述、假设检验、可视化以及自定义函数的创建等方面的内容。 ... [详细]
author-avatar
T不懂T
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有