0
点赞
收藏
分享

微信扫一扫

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


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、新建文件夹

mkdir -p /zzyyuse/mydockerfile/tomcat9

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

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

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

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

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

touch c.txt

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

文件内容为:

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

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

6、构建

docker build -t zzyytomcat9 .

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

7、Run

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

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

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

8、访问测试

注意下上面我们是将宿主机的9080端口映射到容器内部的8080端口

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

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

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


2、添加web.xml

vi web.xml

mkdir WEB-INF

cd WEB-INF

web.xml的内容

<?xml version="1.0" encoding="UTF-8"?>
<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">

<display-name>test</display-name>

</web-app>

3、添加a.jsp

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

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

4、重启容器

先查看当前容器:​​docker ps​

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

重启容器

docker restart ade3fd48a01f

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

5、访问测试:

由于问我宿主机的ip为​​192.168.159.22​​,这个你根据自己的改下。

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


举报

相关推荐

0 条评论