主机上的一个Java安装可以pipe理在Docker容器中部署的多个应用程序

让我们考虑一个场景。 我有一台服务器。 我在主机上安装了Java 8,我需要部署4个具有Java Web应用程序的Docker容器。

我的问题是,可以安装在主机服务器上的Javapipe理docker容器中部署的应用程序,或者我必须在每个容器中安装Java 8。 如果我必须在每个容器中安装java,那么VM和容器之间有什么区别,因为我们还在每个容器中安装OS(最小)。

无论你的主机是否有Java,都没关系。

您将需要一个Java泊坞窗图片,只需要在dockerhub上search一下。 然后build立你的应用程序closures该图像,并旋转图像作为容器。

https://hub.docker.com/

您提到了Web应用程序,因此您必须确保您从容器映射的主机端口是唯一的。 例如我相信你不能有java容器#1到#4映射到相同的主机端口1234。

它必须是像Java Web容器#1的端口123映射到主机100,然后容器#2端口123映射到主机端口101。

希望这可以帮助。

两个情景,

  1. 你想使用OpenJDK

    您可以将所有的容器都放置在下面的官方Java映像中,

    FROM java:8 ... ... 
  2. 你要使用Oracle Java,

    你创build一个Dockerfiles

     FROM centos:7 RUN yum update -y && \ yum install -y wget && \ wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.rpm" && \ yum localinstall -y jdk-7u80-linux-x64.rpm && \ rm -f jdk-7u80-linux-x64.rpm && \ yum clean all ENV JAVA_HOME /usr/java/jdk1.7.0_80 ENV PATH $JAVA_HOME:$PATH CMD ["/bin/bash"] 

然后你build立基本的Java图像

  docker build -t my-oracla-java:8 . 

然后将所有的容器图像从您的java图像中取出

 FROM my-oracla-java:8 ... ...