Docker/CoreOS 上的 Java JVM

标签 java jvm docker coreos

我正在学习 CoreOS/Docker 并试图将我的思想集中在一些事情上。

有了 Java 基础设施,是否可以在它自己的容器中使用 JVM 并让其他 Java 应用程序/服务使用这个 JVM 容器?如果没有,我假设 JVM 必须捆绑在每个容器中,因此基本上您必须拉取 Java dockerfile 并合并我的 Java 服务;本质上是创建一个运行在 CoreOS 机器之上的 Linux 机器 + Java + 服务容器。

我唯一的想法是可以在 CoreOS 本身上运行 JVM,但似乎这是不可能的。

最佳答案

实际上可以在 /opt 中解压 Orcale Java,但这只是一种最后的手段。 JRE 和 JDK 的 Oracle 二进制文件不需要任何系统库,因此在任何地方都非常容易。

我写了一些非常小的 JREJDK图片,我可以用它来运行 Elasticsearch和其他主要的开源应用程序。我还编写了一些容器,允许我在 CoreOS 上编译 jar(errordeveloper/mvnerrordeveloper/sbterrordeveloper/lein)。

正如@ISanych 所指出的,运行多个 Java 容器不会影响磁盘使用,这几乎等同于在主机上运行多个 JVM。如果您发现运行多个 JVM 不太适合您,那么答案是 JVM 不必像它之前存在的容器那样复杂。但是,容器中的 Java 仍然非常好,因为您可以拥有一个永远固定的类路径,而不会陷入依赖 hell 。也许不是构建 uberjars(这是我最常做的,尽管众所周知它们是 not exactly perfect,但我很懒)一个人可以将 jars 打包在 tarball 中,然后使用 ADD jars.tar/app/lib/ 在他们的 Dockerfile 中。

关于Docker/CoreOS 上的 Java JVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27280082/

相关文章:

java - MongoOperations "id"选择器返回 null

java - IntelliJ Idea,如何从控制台删除java文件目录?

java - 通过 MainActivity.java 设置我的 textView 的问题

java - 在 jar 启动时预加载 java 类/库?

python - 命令 '/bin/sh -c pip install -r requirements.txt' 返回非零代码 : 1

docker 中的 django + uwsgi

java - 如何为 Selenium 测试创建兼容的 JAR 文件?

jvm - 监控 worker 在 apache Storm 中崩溃

scala - 如何收集错误是scala,然后将所有错误汇总在一起

docker - 启动运行docker镜像时如何设置运行bash文件