If tomcat is deployed in docker and java applications are deployed
1. Deploy tomcat in docker
Step 1: log on to the root directory of the system and create the tomcat7 folder. Run the command mkdir tomcat7 and switch to the directory cd tomcat7;
Step 2: Create a Dockerfile. The command is touch Dockerfile;
Step 3: Compile the Dockerfile command, such as vim Dockerfile. Complete the following command:
FROM ubuntu: 14.04
MAINTAINER zhaichong <344616313@qq.com>
ENV REFRESHED_AT 2015-7-28
RUN apt-get-yqq update
RUN apt-get-yqq install tomcat7 default-jdk
ENV CATALINA_HOME/usr/share/tomcat7
ENV CATALINA_BASE/var/lib/tomcat7
ENV CATALINA_PID/var/run/tomcat7.pid
ENV CATALINA_SH/usr/share/tomcat7/bin/catalina. sh
ENV CATALINA_TMPDIR/tmp/tomcat7-tomcat7-tmp
RUN mkdir-p $ CATALINA_TMPDIR
VOLUME ["/var/lib/tomcat7/webapps/"]
EXPOSE 8080 9000
ENTRYPOINT ["/usr/share/tomcat7/bin/catalina. sh", "run"]
Note: EXPOSE must EXPOSE all the ports to be used in the program. According to the environment variable CATALINA_BASE, you can know that the directory specified by VOLUME is the directory where tomcat deploys the war package.
Step 4: generate an image. The command is docker build-t test/test_app. (Note that there is an English period here );
Step 5: run the image generation container command, such as docker run -- name test_app-d-p 8080: 8080-p 9000: 9000 image id, run the command: docker images to check the image id. Note that the EXPOSE port is bound to the host port, later, you can use the IP address and port of the host to access tomcat and Its Applications in the docker container.
Step 6: Test: in the browser address bar, click http: // host Host ip Address: 8080.
You can run the docker port container id 8080 command to view the ing between container port 8080 and host port, it can be seen that port 8080 of the container is mapped to port 8080 of the host.
2. How to deploy our application to tomcat Of The docker container?
As you know, tomcat cannot be deployed in containers as it is on the host. So what should we do?
Step 1: In the previous question, we already know where the war package is deployed in the container:/var/lib/tomcat7/webapps/. Where is the location? Run docker inspect-f "{{. volumes} "container id. If you do not know the container id, you can view all running containers in the docker ps mode, you can also view all containers by using docker ps-a, including running and not running containers.
The following results are obtained:
Map [/var/lib/tomcat7/webapps:/var/lib/docker/vfs/dir/logs]. In the brackets of the map, the front side of the colon is the directory in the container, the directory in the host corresponding to the colon, so we only need to copy our war package to this place and then restart tomcat.
Note that tomcat is started by default when the container is started in the Dockerfile we wrote above, so you only need to restart the container so that tomcat can load our container. The command is as follows:
Docker restart container id
3. What if I want to view tomcat logs? For example, to view the log at startup, you can run the following command:
Docker logs container id. If you want to observe logs continuously, it is the docker logs-f container id.