Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Docker container running tomcat - could not access the server using the host IP address

Tags:

docker

tomcat

I am trying to build a docker container running tomcat from a docker file. Please find below the Dockerfile content:

FROM ubuntu:trusty
MAINTAINER karthik.jayaraman
VOLUME ["/tomcat/files"]
ADD /files/tar/apache-tomcat-7.0.47.tar.gz /usr/local/tomcat
ADD /files/scripts/. /tmp/tomcat_temp
RUN ls /tmp/tomcat_temp
RUN cp  -a /tmp/tomcat_temp/. /etc/init.d
RUN chmod 755 /etc/init.d/tomcat
RUN chkconfig --add tomcat && chkconfig --level 234 tomcat on
ADD /files/config   /usr/local/tomcat/apache-tomcat-7.0.47/conf/
ADD /files/lib  /usr/local/tomcat/apache-tomcat-7.0.47/lib/
ENV CATALINA_HOME /usr/local/tomcat/apache-tomcat-7.0.47
ENV PATH $PATH:$CATALINA_HOME/bin
EXPOSE 8080
CMD ["service","tomcat","start"]

When i create the image and run a bash in the container, with the command "Service tomcat start", the server is started. I checked the catalina.out file and ensured that its running. But when i try the host IP on which docker is installed and access the port using the port number 8080, i could connect to tomcat page. But when i specify the internal IP address of the container - 172.24.0.7:8080, i could view the tomcat page. I guess the port forwarding is not properly. Can someone tell me the error i am making here.

like image 560
cucucool Avatar asked Jun 16 '14 19:06

cucucool


People also ask

What IP is Docker container running on?

Usually Docker uses the default 172.17. 0.0/16 subnet for container networking.

How do I find the IP address of a Docker container host?

Method 1. The first method is using the Docker inspect command to inspect containers and using the format option to print out the IP address of the container only. Let's check out how to do so. This command uses the -f flag which stands for --format and uses a Go-template to print only the IP of the container.


1 Answers

Your docker container is running as long as last command is not done. You are booting up your tomcat as a daemon. This makes docker to stop running container as soon as tomcat is started.

You can changed your last line to:

CMD service tomcat start && tail -f /var/lib/tomcat/logs/catalina.out

Or just try using one of precreated tomcat containers from Docker Hub: https://registry.hub.docker.com/search?q=tomcat&s=downloads

like image 104
daniula Avatar answered Oct 21 '22 18:10

daniula