把自己的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_NAME10 #复制文件tomcat-users.xml11 COPY ./$USER_CONF_FILE_NAME $WORK_PATH/12 #删除原文件server.xml13 RUN rm $WORK_PATH/$SERVER_CONF_FILE_NAME14 #复制文件server.xml15 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 就看到自己写的页面了
本文转自 zddnd 51CTO博客,原文链接:http://blog.51cto.com/13013666/1943034