我有几个Java服务,每个服务打包为一个单独的jar文件。我计划将其打包为docker图像。我是否需要在每个映像上捆绑Java运行时,或者我可以依赖主机(将运行映像)已经具有Java运行时的事实?
答案 0 :(得分:7)
您可以使用卷将Java运行时从主机安装到容器中,但这会使容器不那么便携(正如Andrew Fox指出的那样)。
如果您为容器使用公共基本映像(如java:8-jre
),则映像将在容器之间共享,这意味着磁盘上只有一个副本(而不是每个容器一个副本)。
在这两种情况下,您仍然可以运行多个JVM,每个容器一个。
答案 1 :(得分:2)
docker的想法是使您的设置可移植,因此如果您不放入Java运行时,则无法保证它在目标系统上正常工作。我不相信docker可以访问主机可执行文件,除非在某处有特殊的白名单设置,但根据我的经验,它不能。