實戰:dockerfile制作tomcat鏡像


 

1,准備鏡像文件 tomcat 和jdk的壓縮包

 

 

 

如果沒有壓縮包的話點擊下方鏈接下載

 

jdk:

鏈接:https://pan.baidu.com/s/1qvc_54hUzIGdNlBdALfuXQ
提取碼:dquo

 

tomcat :

鏈接:https://pan.baidu.com/s/1xs4-o94XUWs5p4Dbcn-5jQ
提取碼:dqgm

 

2,編寫dockerfile文件

官方命令 Dockerfile,build時會自動尋找這個文件,不需要-f 指定了

 

文件內容:

 

FROM centos:7
MAINTAINER wz<124114543qq.com>

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

ADD jdk1.8.0_221.tar.gz /usr/local/
ADD apache-tomcat-9.0.21.tar.gz /usr/local/

RUN yum -y install vim

ENV MYPATH /usr/local
WORKDIR $MYPATH

ENV JAVA_HOME /usr/local/jdk1.8.0_221
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.21
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.21
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

EXPOSE 8080

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

 

3,開始構建鏡像

docker build -t diytomcat .(“.” 不能忘了)

 

 

如果構建時出現一下報錯:
Error response from daemon: failed to parse Dockerfile: ENV must have two arguments

參考此鏈接:https://www.cnblogs.com/zypdbk/p/16043989.html

 

 

 

 

 

 

4,運行容器

docker run -d -p 9090:8080 --name wztomcat -v /home/slime/test:/usr/local/apache-tomcat-9.0.21/webapps/test -v /home/slime/tomcatlogs/:/usr/local/apache-tomcat-9.0.21/logs diytomcat

 

 

 

 

之后我們就看到文件掛載成功!

 

 

 

 

我們進入容器看看,發現該有的東西都有

docker exec -it e0b478f68232 /bin/bash

 

 

 

 

 

 

可以curl localhost:9090測試一下

 

 

 

 

 

我們也可以去在本機訪問一下

 

 

 

 

 

5,發布項目(由於本地做了卷掛載,我們直接在本地編寫項目即可)

 

在test目錄下新建一個WEB-INF目錄和index.jsp文件,在WEB-INF目錄下新建一個web.xml文件

 

 

[root@CentOs slime]# cd test/
[root@CentOs test]# ls
[root@CentOs test]# mkdir WEB-INF
[root@CentOs test]# cd WEB-INF/
[root@CentOs WEB-INF]# vim web.xml
[root@CentOs WEB-INF]#

 

web.xml代碼:

不同的tomcat版本有着不同的配置代碼:

 

servlet 2.5 [Tomcat 6.0.x(archived)]

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   version="2.5">
   ...
</web-app>

 

servlet 3.0 [Tomcat 7.0.x]

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

 

 

servlet 3.1 [Tomcat 8.0.x (superseded) & 8.5.x]

<?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_3_1.xsd"
  version="3.1" metadata-complete="true">
  ...
</web-app>

 

 

servlet 4.0 [Tomcat 9.0.x]

<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 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>hello world</title> </head> <body> <%     out.println("Hello World!"); %> </body>(注意:這里復制進去會有多余的%,記得刪掉) </html>(注意:這里復制進去會有多余的%,記得刪掉)

 

(這個可以到菜鳥教程里面的JSP教程找!)

 

 

6,繼續訪問,就可以發現部署上去的項目了

 

 

 

 進入日志,之后可以查看了

cat catalina.out

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM