0
点赞
收藏
分享

微信扫一扫

#yyds干活盘点#22.使用DockerFile构建tomcat

40dba2f2a596 2022-03-11 阅读 54

22.使用DockerFile构建tomcat

使用Dockerfile构建tomcat,需要提前准备好tomcat包、jdk包。

tomcat官网:https://tomcat.apache.org

jdk官网:https://www.oracle.com/java/technologies/java-se-glance.html

可以参考如下文档,查看如何下载jdk、tomcat

如何去Tocat官网下载tomcat(https://jingyan.baidu.com/article/a24b33cd3c721319fe002be0.html)

如何从官网下载JDK(https://jingyan.baidu.com/article/656db9184b9ebca381249cbc.html)

22.1. 编写Dockerfile文件

上传jdk、tomcat的tar.gz包到服务器

image202203011937.png

编写Dockerfile

# 指定基础镜像
FROM centos
# 执行作者信息
MAINTAINER doubleWang<739455347@qq.com>

COPY readme.txt /usr/local/readme.txt

ADD jdk-8u321-linux-x64.tar.gz /usr/local
ADD apache-tomcat-9.0.22.tar.gz /usr/local

# 修改centos中yum源的地址
RUN sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-*
RUN sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*

RUN yum -y install vim

ENV MYPATH /usr/local

WORKDIR $MYPATH
# 配置环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_321
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.22
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.22
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

# 暴露端口
EXPOSE 8080

CMD /usr/local/apache-tomcat-9.0.22/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.22/bin/logs/catalina.out

如下图:
image202203011953.png

22.2. 构建tomcat镜像

使用docker build ... 命令构建镜像

docker build -t doublewang/tomcat .

从上面的命令中,可以看到没有写-f ${dockerfile名称},这是由于docker build 命令构建时,如果dockerfile文件的名称是“Dockerfile”(这个名称是官方推荐的),所以在使用Dockerfile给文件命名时,构建命令,可以不用指定-f ${dockerfile名称}
image202203011956.png

构建完成,如下图:
image202203011957.png

22.3. 启动镜像

docker run -d -p 9090:8080 --name doublewang-tomcat -v /home/dockerfile_test/java/webapp1:/usr/local/apache-tomcat-9.0.22/webapps/webapp1 -v /usr/local/apache-tomcat-9.0.22/webapps/webapp1-logs:/usr/local/apache-tomcat-9.0.22/logs doublewang/tomcat

启动成功后,发现webapp1已经挂载成功,如下图:
image202203012012.png

进入容器进行查看,如下图:
image202203012015.png

22.4. 测试

测试tomcat是否启动成功

使用命令curl进行测试,如下图:
image202203012017.png

通过外网访问,如下图:
image202203012023.png

22.5. 手动发布项目

由于我们宿主机与容器内的tomcat下webapps目录做了挂载,因此,我们在宿主机中放一个web项目,会直接发布到容器中,接下来我们进行测试。

普通的web项目包含这几块:

  • WEB-INF
    • web.xml
  • index.jsp

进入项目目录下:

[root@iZ8vb6lqqya4rvreq9ra6gZ java]# pwd
/home/dockerfile_test/java
[root@iZ8vb6lqqya4rvreq9ra6gZ java]# ll
total 154064
-rw-r--r-- 1 root root  10929702 Mar  1 17:21 apache-tomcat-9.0.22.tar.gz
-rw-r--r-- 1 root root       913 Mar  1 19:51 Dockerfile
-rw-r--r-- 1 root root 146815279 Mar  1 17:21 jdk-8u321-linux-x64.tar.gz
-rw-r--r-- 1 root root         0 Mar  1 19:52 readme.txt
drwxr-xr-x 2 root root      4096 Mar  1 20:09 webapp1
[root@iZ8vb6lqqya4rvreq9ra6gZ java]# cd webapp1/
[root@iZ8vb6lqqya4rvreq9ra6gZ webapp1]# ls
[root@iZ8vb6lqqya4rvreq9ra6gZ webapp1]# 

创建WEB-INF文件夹

mkdir WEB-INF

创建一个web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0"
         metadata-complete="true">
</web-app>

创建index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
<h2>Hello World!</h2>
<%
out.println("your IP : " + request.getRemoteAddr());
%>
</body>
</html>

测试访问

在浏览器中访问:http://8.142.24.3:9090/webapp1/

如下图:
image202203012044.png

查看日志是否挂载成功

image202203012049.png
可以看到,日志也挂载成功了。

至此,使用docker发布普通的web项目成功!!!

---------------------------EOF-----------------------------

举报

相关推荐

0 条评论