docker实现自定义tomcat镜像并发布web服务

小咪咪 2022-10-16 03:57 252阅读 0赞

docker实现自定义tomcat镜像并发布web服务

  • 一、新建镜像
    • 1、新建文件夹
    • 2、下载apache-tomcat-9.0.8-src.tar.gz
    • 3、下载下载jdk-8u141-linux-x64.tar. gz
    • 4、在 /zzyyuse/mydockerfile/tomcat9目录下`touch c.txt`
    • 5、在/zzyyuse/mydockerfile/tomcat9目录下新建Dockerfile文件
    • 6、构建
    • 7、Run
    • 8、访问测试
  • 二、结合前述的容器卷将测试的web服务test发布
    • 1、`cd /zzyyuse/mydockerfile/tomcat9/test
    • 2、添加web.xml
    • 3、添加a.jsp
    • 4、重启容器
    • 5、访问测试:

一、新建镜像

1、新建文件夹

  1. mkdir -p /zzyyuse/mydockerfile/tomcat9

2、下载apache-tomcat-9.0.8-src.tar.gz

  1. wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.8/bin/apache-tomcat-9.0.8.tar.gz

在这里插入图片描述

3、下载下载jdk-8u141-linux-x64.tar. gz

  1. wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=ac cept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar. gz"

4、在 /zzyyuse/mydockerfile/tomcat9目录下touch c.txt

  1. touch c.txt

5、在/zzyyuse/mydockerfile/tomcat9目录下新建Dockerfile文件

文件内容为:

  1. FROM centos
  2. MAINTAINER zzyy<zzyybs@126.com>
  3. #把宿主机当前上下文的c.txt拷贝到容器/usr/local/路径下
  4. COPY c.txt /usr/local/cincontainer.txt
  5. #把java与tomcat添加到容器中
  6. ADD jdk-8u141-linux-x64.tar.gz /usr/local/
  7. ADD apache-tomcat-9.0.8.tar.gz /usr/local/
  8. #安装vim编辑器
  9. RUN yum -y install vim
  10. #设置工作访问时候的WORKDIR路径,登录落脚点
  11. ENV MYPATH /usr/local
  12. WORKDIR $MYPATH
  13. #配置java与tomcat环境变量
  14. ENV JAVA_HOME /usr/local/jdk1.8.0_141
  15. ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  16. ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.8
  17. ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.8
  18. ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
  19. #容器运行时监听的端口
  20. EXPOSE 8080
  21. #启动时运行tomcat
  22. # ENTRYPOINT ["/usr/local/apache-tomcat-9.0.8/bin/startup.sh" ]
  23. # CMD ["/usr/local/apache-tomcat-9.0.8/bin/catalina.sh","run"]
  24. CMD /usr/local/apache-tomcat-9.0.8/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.8/bin/logs/catalina.out

在这里插入图片描述

6、构建

  1. docker build -t zzyytomcat9 .

在这里插入图片描述

7、Run

Docker挂载主机目录Docker访问出现cannot open directory .: Permission denied
解决办法:在挂载目录后多加一个–privileged=true参数即可

  1. docker run -d -p 9080:8080 --name myt9 -v /zzyyuse/mydockerfile/tomcat9/test:/usr/local/ apache-tomcat-9.0.8/webapps/test -v /zzyyuse/mydockerfile/tomcat9/tomcat9logs/:/usr/local/apache-tomcat-9.0.8/logs --privileged=true zzyytomcat9

在这里插入图片描述

8、访问测试

注意下上面我们是将宿主机的9080端口映射到容器内部的8080端口
在这里插入图片描述

二、结合前述的容器卷将测试的web服务test发布

1、`cd /zzyyuse/mydockerfile/tomcat9/test

``

2、添加web.xml

  1. vi web.xml
  2. mkdir WEB-INF
  3. cd WEB-INF

web.xml的内容

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  3. <display-name>test</display-name>
  4. </web-app>

3、添加a.jsp

在这里插入图片描述

  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  6. <title>Insert title here</title>
  7. </head>
  8. <body>
  9. -----------welcome------------
  10. <%="i am in docker tomcat self "%>
  11. <br>
  12. <br>
  13. <% System.out.println("=============docker tomcat self");%>
  14. </body>
  15. </html>

4、重启容器

先查看当前容器:docker ps
在这里插入图片描述

重启容器

  1. docker restart ade3fd48a01f

在这里插入图片描述

5、访问测试:

由于问我宿主机的ip为192.168.159.22,这个你根据自己的改下。
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,252人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Docker(二) 定义镜像

    一、前言 记得上半年有一个需求是给服务(mysql)兼容oracle数据库,之前没有怎么接触过oracle数据库,也没有安装过,于是从同事那里要来了安装包(windows