七、Docker入門系列--使用DockerFlie自定義Tomcat映象
阿新 • • 發佈:2022-12-07
七、自定義映象Tomcat9
一、Docker入門系列--Docker 簡介
二、Docker入門系列--Docker安裝
三、Docker入門系列--Docker常用命令
四、Docker入門系列--Docker映象
五、Docker入門系列--Docker容器資料卷
六、Docker入門系列--DockerFlie解析
七、Docker入門系列--使用DockerFlie自定義Tomcat映象
八、Docker入門系列--Docker常用安裝
九、Docker入門系列--本地映象釋出到阿里雲
十、Docker入門系列--Docker-Compose簡介和安裝
十一、Docker入門系列--Docker-Compose模板命令
十二、Docker入門系列--Docker-Compose常用命令
十三、Docker入門系列--Portainer視覺化Docker
十四、Docker入門系列--Docker搭建部署SpringCloud微服務專案Demo
7.1 建立目錄
mkdir /mydocker/tomcat9
在該目錄下新建touch.txt檔案
7.2 將jdk和tomcat安裝的壓縮包拷貝進上述目錄
7.3 在tomcat9目錄下新建Dockerfile檔案
注意一下,Dockerfile檔案裡面涉及到jdk跟tomcat版本的地方一定要確定跟你放在tomcat9資料夾下的一致(別複製貼上了就是build,到時候run執行不出來)
FROM centos MAINTAINER mrzhme<[email protected]> #把宿主機當前上下文的c.txt拷貝到容器/usr/local/路徑下 COPY c.txt /usr/local/cincontainer.txt #把java與tomcat新增到容器中 ADD jdk-8u301-linux-x64.tar.gz /usr/local/ ADD apache-tomcat-9.0.55.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_301 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.55 ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.55 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin #容器執行時監聽的埠 EXPOSE 8080 #啟動時執行tomcat # ENTRYPOINT ["/usr/local/apache-tomcat-9.0.55/bin/startup.sh" ] # CMD ["/usr/local/apache-tomcat-9.0.55/bin/catalina.sh","run"] CMD /usr/local/apache-tomcat-9.0.55/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.55/bin/logs/catalina.out
7.4 構建映象:docker build -t mrlinxitomcat9 .
注意:這裡為什麼沒有加 -f 和Dockerfile的路徑?Dockerfile的標準檔名就是Dockerfile,噹噹前目錄下用於構建映象的Dockerfile的檔名是標準檔名時,可以省略-f+路徑。這時Docker會直接讀取當前目錄下名為Dockerfile的檔案進行映象的構建。
7.5 建立容器並啟動
docker run -d -p 8888:8080 --name myt9 -v /mydocker/tomcat9/test:/usr/local/apache-tomcat-9.0.55/webapps/test -v /mydocker/tomcat9/tomcat9logs/:/usr/local/apache-tomcat-9.0.55/logs --privileged=true mrlinxitomcat9
7.6 測試
記得防火牆開放對應的埠(直接關閉防火牆也可以,但是不推薦):
firewall-cmd --permanent --zone=public --add-port=8888/tcp
訪問成功。
7.7 結合前述的容器卷將測試的web服務test釋出
cd /mydocker/tomcat9/test
mkdir WEB-INF
在test目錄下建立a.jsp檔案,在WEB-INF下建立web.xml檔案
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>
a.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>Insert title here</title>
</head>
<body>
-----------welcome------------
<%="i am in docker tomcat self "%>
<br>
<br>
<% System.out.println("=============docker tomcat self");%>
</body>
</html>
宿主機建立的檔案已經同步過去了
重啟一下容器:docker restart myt9
,訪問我們剛才釋出的test