java - Docker 创建巨大的图像大小

标签 java docker

我提取了基础 ubuntu:latest 镜像(大小 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

最佳答案

几点:

  • This Dockerfile将构建一个非常小的 Oracle JDK 镜像。另请阅读 accompanying blog post .
  • 您可能不需要 JDK 来运行容器,并且可以使用基于 JRE 的容器。您始终可以使用单独的编译器容器来创建 jar 以进入应用程序容器。
  • 如果可以,请考虑使用基于 OpenJDK 构建的官方 Java 镜像,这些镜像相当小。
  • 理想情况下,您应该将单独的进程(例如 MySQL)放入单独的容器中。

关于java - Docker 创建巨大的图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27605037/

相关文章:

java - 如何模拟一个预期返回 HashMap 的方法?

docker - Docker:未在后台开始运行的Map端口

java - 从其他类调用子类方法 - Android (java)

java - Java 中对象到数字到数字的转换。公共(public)库中有任何方法吗?

java - hibernate 教程。连接被拒绝 : connect

amazon-web-services - 在 ECS 任务中重新启动单个退出的容器

Docker Swarm 和私有(private) IP

docker - 为什么无法通过名称或 VIP 访问 Docker Swarm 中的服务?

docker - 如何在 Elasticsearch docker 镜像上运行 crontab 作业

java - 使用 Jersey 获取 REST 资源作为 List<T>