Glassfish 3.1.2.2映像的Docker群集无法启动节点

我们想要dockerize在Glassfish 3.1.2.2上运行的应用程序,并使用docker swarm来运行它的一些负载平衡节点。 为此,我创build了一个基于DockerFile的Docker镜像:

FROM openjdk:7-jdk ENV LANGUAGE=el_GR:el \ lang=EL_gr.utf-8 \ JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 \ GLASSFISH_HOME=/usr/local/glassfish3/glassfish ENV GLASSFISH_DOMAIN1=$GLASSFISH_HOME/domains/domain1 \ GLASSFISH_BINARY_URL=http://download.oracle.com/glassfish/3.1.2.2/release/glassfish-3.1.2.2.zip \ PATH=$PATH:$JAVA_HOME/bin:$GLASSFISH_HOME/bin LABEL glassfish.version="3.1.2.2" \ java="openjdk-7" RUN apt-get update && apt-get install -y curl unzip zip inotify-tools locales && \ #localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias el_GR.UTF-8 ENV LANG el_GR.utf8 && \ rm -rf /var/lib/apt/lists/* && \ curl -L -o /tmp/glassfish.zip $GLASSFISH_BINARY_URL && \ unzip -q /tmp/glassfish.zip -d /usr/local && \ rm -f /tmp/glassfish.zip && \ cp $GLASSFISH_DOMAIN1/config/logging.properties $GLASSFISH_DOMAIN1/config/logging.properties.default && \ cp $GLASSFISH_DOMAIN1/config/login.conf $GLASSFISH_DOMAIN1/config/login.conf.default EXPOSE 4848 8080 8181 CMD ["asadmin", "start-domain", "-v"] 

我testing了这个图像,它运行没有问题:

 $docker build -t glass3 --tag xyz/glassfish:3.1.2.2 . $docker run --rm --name glass -p 8080:8080 -p 4848:4848 glass3 //navigate to 192.168.99.100:4848 to get the admin console $docker stop glass 

当我尝试启动群集(单个节点)时,出现错误,指出端口4848已被使用,但没有使用该端口的进程:

 $docker swarm init --advertise-addr 192.168.99.100 $docker service create --name glass-swarm -p 8080:8080 -p 4848:4848 xyz/glassfish:3.1.2.2 $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4620018f8197 xyz/glassfish "asadmin start-dom..." 2 seconds ago Created glass-swarm.1.neqktsvc41gkkpp4yubftydaq $ docker logs -f 4620 ... ... ... There is a process already using the admin port 4848 -- it probably is another instance of a GlassFish server. Command start-domain failed. 

我尝试使用Docker Hub的其他公共映像,像ucalgary / glassfish一样获得相同的结果。 当我创build基于GlassFish 4.1.1的swarm时,这不会发生。 不幸的是,我们的networking应用程序只与Glassfish 3.1.2.2兼容

任何想法为什么发生这种情况?

Interesting Posts