Docker创build巨大的图像大小

我拉基地Ubuntu的:最新的形象(大小192.7 MB),并安装只有Oracle的Java7(JDK)(它的大小为tar.gz〜53MB),并承诺产生的图像。 图像大小是903MB。

为什么图像尺寸增加如此巨大? 我们仍然需要添加其他组件(汤姆猫,vertx,mysql等)。 图像尺寸将变得难以pipe理。

有关如何缩小图像大小的任何提示?

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE gammay/baseimage v0.1a 80324b762c5e 21 minutes ago 903.6 MB ubuntu latest 9bd07e480c5b 2 weeks ago 192.7 MB 

几点:

  • 这个Dockerfile将构build一个非常小的Oracle JDK映像。 还请阅读随附的博客文章 。
  • 您可能不需要运行您的容器的JDK,并可以摆脱基于JRE的容器。 您始终可以使用单独的编译器容器来创build进入应用程序容器的jar。
  • 如果可以的话,可以考虑使用基于OpenJDK的官方Java图像,这些图片相当小。
  • 理想情况下,你应该把单独的进程(如MySQL)放到不同的容器中。

Java7可能有大量的依赖,需要安装它的运行,而不是安装在你的基础Ubuntu镜像。 所有这些也安装在您可能会解释大图像大小安装Java。

有关如何缩小图像大小的任何提示?

您可以尝试执行以下操作:

  • 你从源代码构buildJava? 如果是这样,有没有select,你可以禁用,这是不需要你的应用程序? 有没有在运行时不需要的任何开发包? 你也许可以摆脱这些。

  • 在自己的容器中运行mysql,并将您的Web应用程序容器连接到您的mysql容器,可能通过容器链接 。 这样做有几个原因,其中之一是为了更容易地扩展应用程序组件。

  • 构build你的tomcat实例,使得你拥有一个tomcat容器和你的应用程序jar。 然后,您可以使用数据量将应用程序挂载到tomcat容器。 与tomcat / java容器相比,您的应用程序映像应该相对较小。 更新你的应用程序变得更容易一些,因为你不需要同时重buildtomcat / java图像(除非你需要额外的function来烘焙tomcat。