把自己的tomcat docker化並且使用maven實現熱部署 特別記錄一下~
1.首先進行centos7的安裝 就不在記錄了 注意的是最好使用centos7 因為docker 依賴 namespace和cgroups 對於低版本的centos內核 支持性不是很好
2.接下來進行安裝docker一條命令就完事
1 yum install -y docker
3.啟動docker容器
1 systemctl start docker.service
4.修改docker鏡像地址(不修改的話 國外的鏡像站點很慢的哦)
在宿主機器編輯文件:vi /etc/docker/daemon.json
請在該配置文件中加入(沒有該文件的話,請先建一個):
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]}
最后,需要重啟docker服務 systemctl restart docker.service
5.下載tomcat鏡像
1 docker pull tomcat:7
6.從Apache官網下載tomcat7的壓縮包 一些配置文件我們需要拷貝
http://archive.apache.org/dist/tomcat/tomcat-7/
7.創建相關的存放 個性化tomcat配置文件 和 Dockerfile文件的目錄
(1)存放Dockerfile文件的位置
1 mkdir -p /usr/local/dockerfile/massive
(2)存放server.xml和tomcat-users.xml文件的位置
1 mkdir -p /usr/local/tomcat/conf
8.解壓tomcat壓縮包文件
1 tar -zxvf apache-tomcat7
10.修改tomcat-users.xml 添加如下代碼
9.復制tomcat conf目錄下的server.xml和tomcat-users.xml文件到/usr/local/dockerfile/massive和/usr/local/tomcat/conf
10.在/usr/local/dockerfile/massive目錄下創建Dockerfile文件添加如下內容 (注意Dockerfile不要寫錯大小寫):
1 from tomcat:7 2 #定義工作目錄 3 ENV WORK_PATH /usr/local/tomcat/conf 4 #定義要替換的文件名 5 ENV USER_CONF_FILE_NAME tomcat-users.xml 6 #定義要替換的server.xml文件名 7 ENV SERVER_CONF_FILE_NAME server.xml 8 #刪除原文件tomcat-users.xml 9 RUN rm $WORK_PATH/$USER_CONF_FILE_NAME 10 #復制文件tomcat-users.xml 11 COPY ./$USER_CONF_FILE_NAME $WORK_PATH/ 12 #刪除原文件server.xml 13 RUN rm $WORK_PATH/$SERVER_CONF_FILE_NAME 14 #復制文件server.xml 15 COPY ./$SERVER_CONF_FILE_NAME $WORK_PATH/
11.構建自己的docker鏡像
1 docker build -t dxqqtomcat:1.0 .
注: dxqqtomcat是鏡像的名稱 1.0是版本 . 是Dockerfile在執行命令的當前目錄
成功后如下:
查看鏡像有哪些:
12啟動tomcat容器:
1 docker run -d --name my-tomcat -p 7777:8080 dxqqtomcat
注: -d 守護進程方式啟動 --name 是你的啟動的容器的名稱 -p 端口 8080映射到7777 最后一個是鏡像的名稱
13.關閉防火牆 訪問tomcat 瀏覽器 http://你的IP:7777/ 就可以看到可愛的tomcat了
接下來就是使用maven熱部署項目到tomcat中~~
1.新建maven項目 在pom.xml文件添加如下代碼:
1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 2 <modelVersion>4.0.0</modelVersion> 3 <groupId>org.bianqi.docker</groupId> 4 <artifactId>docker-demo</artifactId> 5 <version>0.0.1-SNAPSHOT</version> 6 <packaging>war</packaging> 7 8 <dependencies> 9 <!-- JSP相關 --> 10 <dependency> 11 <groupId>jstl</groupId> 12 <artifactId>jstl</artifactId> 13 <version>1.2</version> 14 </dependency> 15 <dependency> 16 <groupId>javax.servlet</groupId> 17 <artifactId>servlet-api</artifactId> 18 <version>2.5</version> 19 <scope>provided</scope> 20 </dependency> 21 <dependency> 22 <groupId>javax.servlet</groupId> 23 <artifactId>jsp-api</artifactId> 24 <version>2.0</version> 25 <scope>provided</scope> 26 </dependency> 27 </dependencies> 28 <build> 29 <finalName>${project.artifactId}</finalName> 30 <plugins> 31 <!-- 資源文件拷貝插件 --> 32 <plugin> 33 <groupId>org.apache.maven.plugins</groupId> 34 <artifactId>maven-resources-plugin</artifactId> 35 <version>2.7</version> 36 <configuration> 37 <encoding>UTF-8</encoding> 38 </configuration> 39 </plugin> 40 <!-- java編譯插件 --> 41 <plugin> 42 <groupId>org.apache.maven.plugins</groupId> 43 <artifactId>maven-compiler-plugin</artifactId> 44 <version>3.2</version> 45 <configuration> 46 <source>1.7</source> 47 <target>1.7</target> 48 <encoding>UTF-8</encoding> 49 </configuration> 50 </plugin> 51 <plugin> 52 <groupId>org.apache.tomcat.maven</groupId> 53 <artifactId>tomcat7-maven-plugin</artifactId> 54 <configuration> 55 <path>/</path> 56 <port>80</port> 57 <url>http://192.168.206.138:7777/manager/text</url> 58 <username>tomcat</username> 59 <password>tomcat</password> 60 </configuration> 61 </plugin> 62 </plugins> 63 <pluginManagement> 64 <plugins> 65 <!-- 配置Tomcat插件 --> 66 <plugin> 67 <groupId>org.apache.tomcat.maven</groupId> 68 <artifactId>tomcat7-maven-plugin</artifactId> 69 <version>2.2</version> 70 </plugin> 71 </plugins> 72 </pluginManagement> 73 </build> 74 75 </project>
2.創建index.jsp文件 添加如下:
3.然后執行命令 tomcat7:redeploy
4.maven相關輸出
5.再次訪問tomcat 就看到自己寫的頁面了
成功熱部署完畢~~~~~~