当前位置: 首页 > 面试题库 >

如何展平Docker映像?

封德华
2023-03-14
问题内容

我做了一个相当大的Docker容器。当我提交容器以创建映像时,该映像大约有7.8
GB。但是,当我export将容器(不是save映像!)放到压缩包中并重新导入时,映像只有3
GB。当然,历史已经丢失了,但是对我来说这没关系,因为我认为映像已“完成”并准备部署。

如何展平图像/容器而不将其导出到磁盘并再次导入? 并且:这样做是一个明智的主意,还是我错过了一些重要的观点?


问题答案:

从Docker 1.13开始,您可以使用该--squash标志。

在1.13版之前:

据我所知,您无法使用Docker api。就像您自己已经提到的那样,docker export并且docker import是针对这种情况而设计的。

如果您不想保存到磁盘,则可以将导出的输出流通过管道导入到导入的输入流中。我没有测试过,但是尝试

docker export red_panda | docker import - exampleimagelocal:new


 类似资料:
  • 问题内容: 我使用的是官方的Elasticsearch Docker映像, 而不是设置自己的elasticsearch实例。效果很好,直到我想要扩展它为止。我想在该ElasticSearch实例中安装奇迹以获取更多信息。 现在dockerfile / elasticsearch会自动运行ElasticSearch并将命令设置为不起作用,也不会附加到容器或尝试通过SSH访问它,也不会使用来安装ssh

  • 问题内容: 我正在尝试扩展CouchDB docker映像以预填充CouchDB(带有初始数据库,设计文档等)。 为了创建一个名为的数据库,我首先尝试了以下缩写: 但是构建失败,因为在构建时尚未启动ouchdb服务。所以我将其更改为: 注意: 这是我发现使其起作用的唯一方法,因为它不适用于curl选项, 第二个只是检查数据库是否已创建。 构建似乎工作正常: 奇怪的是,现在当我将其作为容器启动时,数

  • 问题内容: 我想通过docker-compose建立映像并为其设置特定标签。文档说: Compose将使用生成的名称来构建并标记它,然后使用该图像。 但是我找不到指定标签的方法,对于生成的图像,我总是看到“最新”标签。 问题答案: 似乎文档/工具已更新,您现在可以将标记添加到脚本中。这对我来说是成功的。 例: https://docs.docker.com/compose/compose- fil

  • 问题内容: 我有以下图像: 当我尝试删除其中之一时,我得到: 如何删除它们?为什么会有这样的冲突? 问题答案: 为了删除所有图像,请使用给定命令 为了删除所有容器,请使用给定命令 警告:这将破坏您的所有图像和容器。 将无法还原它们! 该解决方案由Techoverflow.net提供。

  • 问题内容: 在PHP中,是否可以在不使用递归或引用的情况下展平(双向/多维)数组? 我只关心的值,这样的键可以忽略不计,我想在的线和。 问题答案: 您可以使用标准PHP库(SPL) “隐藏”递归。 版画

  • 如何使用PDFBox“展平”PDF表单(删除表单字段,但保留字段文本)? 这里回答了同样的问题: 一个快速的方法是从acrofrom中删除字段。 为此,您只需要获取文档曲库,然后是acroform,然后从该acroform中删除所有字段。 图形表示与注释链接并保留在文档中。 所以我写了这段代码: