Docker容器(八):Docker部署Tomcat

所需要的Jar包

  • apache-tomcat-8.5.35.tar.gz

  • jdk-8u191-linux-x64.tar.gz

将这两个压缩包跟Dockerfile文件放在同一个目录下。

编写Dockerfile

FROM centos
MAINTAINER 70KG<zhangjianbing777@163.com>
#添加并解压到容器中
ADD apache-tomcat-8.5.35.tar.gz /usr/local
ADD jdk-8u191-linux-x64.tar.gz /usr/local
#安装vim命令
RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH
#配置环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_191
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.35
ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.35
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
#启动tomcat
#ENTRYPOINT ["usr/local/apache-tomcat-8.5.35/bin/startup.sh"]
#CMD ["/usr/local/apache-tomcat-8.5.35/bin/catalina.sh","run"]
CMD /usr/local/apache-tomcat-8.5.35/bin/startup.sh && tail -f /usr/local/apache-tomcat-8.5.35/logs/catalina.out

Dockerfile文件的解释,可以看一下第五章。

创建镜像

在Dockerfile文件所在的目录,执行命令: docker build -t mytomcat . 会生成自定义好的tomcat镜像。

运行容器

查看镜像 docker images ,运行命令: docker run -it -v /usr/local/project/webapps/test:/usr/local/apache-tomcat-8.5.35/webapps/test -v /usr/local/project/tomcatlogs:/usr/local/apache-tomcat-8.5.35/logs -p 8085:8080 mytomcat

  • 上述命令是将容器中tomcat下的test项目挂载到宿主机的test项目下面,并且将容器中tomcat日志挂载到宿主机的tomcatlogs目录下。

发布项目

  1. 在宿主机的test工程目录下新建WEB-INF文件夹和a.jsp文件,在WEB-INF文件夹下新建web.xml文件
  2. 访问ip:8085/test/a.jsp
  3. 修改宿主机的a.jsp后,发现容器中的也会跟着变化,此时文件的动态发布就成功了。
  4. 当我们test的工程需要发布线上的时候,仅需要将打好的war包发布到宿主机中即可。
原文地址:https://www.cnblogs.com/zhangjianbing/p/12443321.html