Docker和JVM,是否为每个docker实例创build一个新的JVM安装?

我正在考虑用Docker安装大约8个Java应用程序,Docker是否在Docker实例中创build了8个不同的JVM安装?

如果是这样,这在空间上似乎效率低下。 还有什么办法可以解决这个问题吗?

如果您创build一个JVM映像,并在特定于应用程序的映像中从该映像扩展,则JVM将只会在您的计算机上运行一次,前提是您拥有同一主机上的映像/容器。 实际上,这对于Docker来说是一个完美的用例!

即使你运行的每个应用程序三次,所以你最终得到24运行容器,JVM将只在您的光盘上一次。 应用程序写入的数据将位于顶层文件系统层,不会影响其下面的图层,因此您可以同时将这些数据重新用于其他图像。

如果你愿意的话,看一下我在Github上提供的JDK-7映像,并且看看我是如何使用Tomcat映像和Elasticsearch映像的。