Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker和JVM,是否为每个Docker实例创建新的JVM安装?_Docker - Fatal编程技术网

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

Docker和JVM,是否为每个Docker实例创建新的JVM安装?,docker,Docker,我想用Docker安装大约8个Java应用程序,Docker是否在其Docker实例中创建了8个不同的JVM安装 如果是这样,这在空间上似乎效率低下。还有什么方法可以解决这个问题吗?如果您创建一个JVM映像,并在特定于应用程序的映像中从该映像扩展JVM,那么JVM将只在您的计算机上出现一次,当然,假设您在同一主机上有映像/容器。事实上,这是Docker的完美用例 即使你每运行一个应用程序三次,最终得到24个运行容器,JVM也只会在你的光盘上运行一次。应用程序写入的数据将位于文件系统顶层,不会影响

我想用Docker安装大约8个Java应用程序,Docker是否在其Docker实例中创建了8个不同的JVM安装


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

如果您创建一个JVM映像,并在特定于应用程序的映像中从该映像扩展JVM,那么JVM将只在您的计算机上出现一次,当然,假设您在同一主机上有映像/容器。事实上,这是Docker的完美用例

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


如果你愿意,看看我在上面提供的JDK-7图像,看看我如何将其用于Tomcat图像和Elasticsearch图像。

p.s.我写了两篇博客文章来解决这些问题,尽管关于Tomcat的那篇已经有点过时了。这不是广告评论!只是我已经写了很多了。。。你说只有一次是什么意思?jvm层将有一个副本,对于在此层之上构建的每个映像,也将有一个副本。