我做了一个相当大的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提供。
问题内容: 假设我有一个docker映像,并将其部署在某些服务器上。但是我不希望其他用户访问该图像。是否有加密docker映像的好方法? 问题答案: 实际上,不,如果用户有权运行docker守护程序,那么他们将有权访问所有图像-这是由于docker要求更高的权限才能运行。 有关为什么这样做的更多信息,请参阅Docker安全指南的摘录。 Docker守护程序攻击面 使用Docker运行容器(和应用程
问题内容: 在PHP中,是否可以在不使用递归或引用的情况下展平(双向/多维)数组? 我只关心的值,这样的键可以忽略不计,我想在的线和。 问题答案: 您可以使用标准PHP库(SPL) “隐藏”递归。 版画