Ubuntu14.04在Docker安裝並運行tomcat項目

在Docker中有兩種方式來安裝tomcat服務器。

1、從Docker Hub中下載Tomcat鏡像

搜索Docker Hub中的Tomcat鏡像

docker search tomcat

排名靠前的是官方的Tocmat鏡像,來自官方鏡像說明可以參考點擊打開鏈接

從以上列表中選擇一個合適的Tomcat下載安裝

docker pull tomcat:7 

漫長地下載等待後就下載安裝成功了

查看本地鏡像

docker images #所有鏡像
docker image tomcat:7  #查看REPOSITORY爲tomcat:7的鏡像

運行Tomcat鏡像

docker run -d -p 8081:8080 tomcat:7 


查看運行中的容器

docker ps

停止運行容器

docker stop 運行中容器id

刪除容器

docker rm 容器id

刪除鏡像

docker rmi 鏡像id

2、使用dockerfile構建Tomcat容器鏡像

很多生產環境下要使用個性化配置的Tomcat,使用dockerfile就是最合適的了

準備好jdk、tomcat安裝包、Dockerfile文件、tomcat-users.xml文件

Dockerfile文件

FROM ubuntu:14.04
MAINTAINER ycx <[email protected]> 
# now add java and tomcat support in the container 
ADD jdk-8u161-linux-x64.tar.gz /usr/local/ 
ADD apache-tomcat-7.0.85.tar.gz /usr/local/
# configuration of java and tomcat ENV 
ENV JAVA_HOME /usr/local/jdk1.8.0_161 
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
ENV CATALINA_HOME /usr/local/apache-tomcat-7.0.85 
ENV CATALINA_BASE /usr/local/apache-tomcat-7.0.85 
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin 
# container listener port 
EXPOSE 8080 
# startup web application services by self
CMD /usr/local/apache-tomcat-7.0.85/bin/catalina.sh run

tomcat-users.xml文件

<tomcat-users xmlns="http://tomcat.apache.org/xml"  
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"  
              version="1.0">  
<role rolename="manager"/>  
<role rolename="manager-gui"/>  
<role rolename="admin"/>  
<role rolename="admin-gui"/>  
<role rolename="manager-script"/>  
<user username="admin" password="admin" roles="admin-gui,admin,manager-gui,manager,manager-script"/>  
</tomcat-users>

使用ftp將這4個文件上傳到Ubuntu服務器

解壓apache-tomcat-7.0.85.tar.gz

tar -zxvf apache-tomcat-7.0.85.tar.gz

修改它裏面的context.xml、tomcat-users.xml文件

context.xml修改如下

<?xml version="1.0" encoding="UTF-8"?>  
<Context antiResourceLocking="false" privileged="true" docBase="${catalina.home}/webapps/manager" >  
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"    allow="^.*$" />  
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>  
</Context> 

把目錄中的tomcat-users.xml覆蓋到tomcat中的tomcat-users.xml文件中

tomcat-users.xml如下

<?xml version="1.0" encoding="UTF-8"?>  
<Context antiResourceLocking="false" privileged="true" docBase="${catalina.home}/webapps/manager" >  
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"    allow="^.*$" />  
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>  
</Context> 

打包apache-tomcat-7.0.85.爲apache-tomcat-7.0.85.tar.gz

tar czvf apache-tomcat-7.0.85.tar.gz apache-tomcat-7.0.85

在這4個文件的當前目錄,執行編譯命令,“.”表示當前文件夾

$ sudo docker build -t ycx/tomcat-im .

控制檯打印如下,表示編譯成功

ubuntu@ubuntu:~/winshare/tomcatweb$ sudo docker build -t ycx/tomcat-im .
Sending build context to Docker daemon  198.8MB
Step 1/12 : FROM ubuntu:14.04
14.04: Pulling from library/ubuntu
c2c80a08aa8c: Pull complete 
6ace04d7a4a2: Pull complete 
f03114bcfb25: Pull complete 
99df43987812: Pull complete 
9c646cd4d155: Pull complete 
Digest: sha256:b92dc7814b2656da61a52a50020443223445fdc2caf1ea0c51fa38381d5608ad
Status: Downloaded newer image for ubuntu:14.04
 ---> 3b853789146f
Step 2/12 : MAINTAINER ycx <[email protected]>
 ---> Running in 4bddec2f502e
Removing intermediate container 4bddec2f502e
 ---> d93a0f2ccda9
Step 3/12 : ADD jdk-8u161-linux-x64.tar.gz /usr/local/
 ---> 91b07a36381f
Step 4/12 : ADD apache-tomcat-7.0.85.tar.gz /usr/local/
 ---> 7fc87249584c
Step 5/12 : ADD tomcat-users.xml /usr/local/apache-tomcat-7.0.85/conf/tomcat-users.xml
 ---> 7e9c3e5ff344
Step 6/12 : ENV JAVA_HOME /usr/local/jdk1.8.0_161
 ---> Running in bc7e83399dd6
Removing intermediate container bc7e83399dd6
 ---> f8323859c84f
Step 7/12 : ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 ---> Running in bb82cd2bf8b0
Removing intermediate container bb82cd2bf8b0
 ---> d20b0c25df42
Step 8/12 : ENV CATALINA_HOME /usr/local/apache-tomcat-7.0.85
 ---> Running in 8e50eac104de
Removing intermediate container 8e50eac104de
 ---> f8776a09b35f
Step 9/12 : ENV CATALINA_BASE /usr/local/apache-tomcat-7.0.85
 ---> Running in 7939810f6002
Removing intermediate container 7939810f6002
 ---> 6ae9de1087a6
Step 10/12 : ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
 ---> Running in 79a158e874cc
Removing intermediate container 79a158e874cc
 ---> a41575ff32d4
Step 11/12 : EXPOSE 8080
 ---> Running in 0e63db3d01ba
Removing intermediate container 0e63db3d01ba
 ---> d11af7f6314d
Step 12/12 : CMD /usr/local/apache-tomcat-7.0.85/bin/catalina.sh run
 ---> Running in e620e59127fa
Removing intermediate container e620e59127fa
 ---> a985c7e5dc47
Successfully built a985c7e5dc47
Successfully tagged ycx/tomcat-im:latest

接下來啓動Tomcat鏡像

$ sudo docker run -d -p 8082:8080 ycx/tomcat-im:latest


其他Docker操作命令如上,就不再重述

自動部署War包到Tomcat鏡像

項目pom.xml配置

<!-- 配置Tomcat插件 -->
			<plugin>
				<groupId>org.apache.tomcat.maven</groupId>
				<artifactId>tomcat7-maven-plugin</artifactId>
				<configuration>
					<!-- 遠程部署,當使用本地調試時禁用 -->
					<url>http://192.168.1.111:8082/manager/text</url>
					<!-- Tomcat的tomcat-users.xml中指定的用戶名和密碼 -->
					<username>admin</username>
					<password>admin</password>
					<!-- 服務器的名稱,與maven全局setting.xml中server的id一致 -->
					<server>tomcat7</server>
					<port>8082</port>
					<path>/</path>
					<!-- 本地調試用下面的 -->
					<!-- <port>8081</port> -->
					<!-- <path>/</path> -->
				</configuration>
            </plugin> 

maven部署命令

clean tomcat7:deploy

eclipse控制檯有如下顯示錶示遠程部署成功

[INFO] WEB-INF\web.xml already added, skipping
[INFO] 
[INFO] <<< tomcat7-maven-plugin:2.2:deploy (default-cli) < package @ im-manager-web <<<
[INFO] 
[INFO] --- tomcat7-maven-plugin:2.2:deploy (default-cli) @ im-manager-web ---
[INFO] Deploying war to http://192.168.1.111:8082/  
Uploading: http://192.168.1.111:8082/manager/text/deploy?path=%2F
Uploaded: http://192.168.1.111:8082/manager/text/deploy?path=%2F (31105 KB at 2066.2 KB/sec)

[INFO] tomcatManager status code:200, ReasonPhrase:OK
[INFO] OK - Deployed application at context path /
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] im-manager ......................................... SUCCESS [  1.525 s]
[INFO] im-manager-pojo .................................... SUCCESS [  5.164 s]
[INFO] im-manager-dao ..................................... SUCCESS [  2.088 s]
[INFO] im-manager-service ................................. SUCCESS [  2.071 s]
[INFO] im-manager-web ..................................... SUCCESS [01:26 min]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:38 min
[INFO] Finished at: 2018-04-15T12:48:33+08:00
[INFO] Final Memory: 19M/148M
[INFO] ------------------------------------------------------------------------

然後打開瀏覽器輸入http://192.168.1.111:8082/loginpage,打開項目頁面


當然也可以打包成war包單獨上傳tomcat部署,就不再講述,希望對大家由幫助

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章