Dockerfile制作tomcat镜像
首先准备好JDK和tomcat的压缩包tar.gz文件
编写Dockerfile文件
官方命名Dockerfile
,build会自动寻找这个文件,就不需要-f指定。
vim Dockerfile
FROM centos
MAINTAINER lieonchou<email_address>
COPY readme.txt /usr/local/readme.txt #将所写的readme.txt文件复制到容器内部
ADD jdk-8u11-linux-x64.tar.gz /usr/local/ #添加文件,解压路径
ADD apache-tomcat-9.0.22.tar.gz /usr/local #添加文件,解压路径
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_11
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.22
ENV CATALINA_BASH /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
构建镜像
docker build -t diytomcat . #最后的点表示当前目录
查看镜像
docker images
运行镜像
docker run -d -p 9090:8080 --name lieontomcat -v /home/lieon/build/tomcat/test:/urs/local/apache-tomcat-9.0.22/webapps/test -v /home/lieon/build/tomcat/tomcatlogs/:/usr/local/apache-tomcat-9.0.22/logs diytomcat
进入容器
docker exec -it [容器id] /bin/bash
pwd #查看默认路径
外网访问
ip:9090
本地测试
进入挂载的文件夹test
cd /home/lieon/build/tomcat/test
ls #查看目录
在文件中进行操作
mkdir WEB-INF #创建文件夹
vim web.xml #测试网站需要添加此文件,不同的tomcat有不同的配置
vim index.jsp
创建xml 配置文件
在tomcat的webapps/ROOT/WEB-INF中,如下图所示
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
version="5.0"
metadata-complete="true">
<display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description>
</web-app>
创建jsp文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>hello,Lieon</title>
</head>
<body>
Hello World!<br/>
<%
System.out.println("------mytestweblogs------");
%>
</body>
</html>
查看网页
ip:9090/test
这里会有一个问题,访问时出现404错误,这是因为我们将index.jsp
文件放在了WEB-INF
中,/WEB-INF
是访问受限制的,jsp
与html
文件不能放在这个文件夹下。
修改index.jsp
文件存放的的路径
将其直接放在test
目录下,再次打开网页就成功了。
查看日志
cd /home/lieon/tomcatlogs #进入日志目录
ls # 列出目录找到catalina.out文件,并输出
cat catalina.out #输出日志
每访问一次网页都会增加一条记录。