主机上的一个Java安装是否可以管理在docker容器

时间:2016-05-12 05:48:21

标签: docker

让我们考虑一个场景。我有一台服务器。我在主机上安装了Java 8.我需要部署4个拥有java web应用程序的docker容器。

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

2 个答案:

答案 0 :(得分:0)

您的主机是否具有Java并不重要。

你需要一个Java docker镜像,只需在dockerhub上搜索一些。然后从该图像构建应用程序并将图像作为容器旋转。

https://hub.docker.com/

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

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

希望这有帮助。

答案 1 :(得分:0)

两种情景,

  1. 您想使用OpenJDK

    您可以将所有容器从官方Java映像中删除,如下所示

    FROM java:8
    ...
    ...
    
  2. 您想使用Oracle Java,

    你创建了一个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"]
    
  3. 然后构建基本java映像

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

    然后将所有容器图像从java图像中删除

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