我提取了基础ubuntu:最新映像(大小为192.7 MB)并且只安装了Oracle java7(JDK)(tar.gz~53MB的大小)并提交了生成的映像。图像大小为903MB。
为什么图像尺寸会大幅增加?我们仍然需要添加其他组件(tom cat,vertx,mysql等)。图像尺寸将变得无法管理。
有关如何缩小图像尺寸的任何提示?
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
答案 0 :(得分:14)
几点:
答案 1 :(得分:1)
Java7可能需要安装大量依赖项才能运行它们,而这些依赖项并未安装在基础Ubuntu映像上。安装java时也会安装所有这些,这可能解释了大图像的大小。
答案 2 :(得分:1)
有关如何缩小图像尺寸的提示?
您可以尝试执行以下操作:
您是否从源代码构建java?如果是这样,您是否可以禁用应用程序不需要的选项?是否有运行时不需要的开发包?你也许可以摆脱它们。
在自己的容器中运行mysql,并将您的Web应用程序容器连接到您的mysql容器,可能通过container links。这样做有几个原因,其中一个原因是为了更轻松地扩展应用程序组件。
以一种tomcat容器和应用程序jar的方式构建tomcat实例。然后,您可以使用data volume将应用程序挂载到tomcat容器。与tomcat / java容器相比,您的应用程序映像应该相对较小。更新应用程序变得更容易,因为您不需要同时重建tomcat / java映像(除非您需要额外的功能来烘焙到tomcat。
答案 3 :(得分:1)
您可以优化图片
http://www.centurylinklabs.com/optimizing-docker-images/
,你的形象可能会减轻一些重量
https://github.com/jwilder/docker-squash
您还可以使用本文中的工具
创建一个小图像http://blog.xebia.com/2015/06/30/how-to-create-the-smallest-possible-docker-container-of-any-image/以及
提供的工具strip-docker-image