docker部署Javaweb項目(jdk+tomcat+mysql)


 

 

步驟一:在主機下載安裝docker,參照Centos7上安裝docker

 

步驟二:下載Linux版本的JDK1.6和Tomcat6.0(其他項目若依賴其他版本的運行環境可選擇另外版本下載),通過secureCRT將下載壓縮包傳遞到Linux主機中,

指令如下:put 源文件路徑 (put d://uploads/linuxV/apache-tomcat-6.0.37.tar.gz) 該文件將默認傳遞到Linux主機下的“~”目錄下

引申:從Linux主機傳遞文件到Windows中的指令為 get 源文件的絕對路徑 (get /home/sun/Dockerfile)源文件將默認傳遞到Windows下的“C:\Users\Administrator\Documents”目錄下

 

步驟三:將下載好的JDK和Tomcat傳遞到Linux后,復制到指定的文件夾(如:/home/sun/),並將其解壓,

常用解壓指令如下:

tar -xzvf 文件名(解壓tar.gz);tar -xvf 文件名(解壓tar文件)

注意:若為bin文件,則需賦予解壓權限,指令為:chmod u+x 文件名 再進行解壓指令:./文件名(解壓bin)

解壓后查看 /home/sun/ 如下:

 

 

步驟四:編寫Dockerfile

在當前路徑(/home/sun/)下創建文件Dockerfile(touch Dockerfile),vim Dockerfile ,編寫具體內容,如下

FROM centos
MAINTAINER 945130012@qq.com

#切換鏡像目錄,進入/usr目錄
WORKDIR /usr
#在/usr/下創建jdk目錄,用來存放jdk文件
RUN mkdir jdk
#在/usr/下創建tomcat目錄,用來存放tomcat
RUN mkdir tomcat

#將宿主機的jdk目錄下的文件拷至鏡像的/usr/jdk目錄下
ADD jdk1.6.0_45 /usr/jdk/
#將宿主機的tomcat目錄下的文件拷至鏡像的/usr/tomcat目錄下
ADD apache-tomcat-6.0.37 /usr/tomcat/

#設置環境變量
ENV JAVA_HOME=/usr/jdk
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH=/sbin:$JAVA_HOME/bin:$PATH

#公開端口
EXPOSE 8080
#設置啟動命令
ENTRYPOINT ["/usr/tomcat/bin/catalina.sh","run"]

 

步驟五:編譯Dockerfile,指令如下:

docker build -t sbindocker/hello .

注意:考慮到上次docker倉庫的鏡像命名格式為:docker登錄名/鏡像名,所以在這里直接按照格式取名,免得后面docker push 出問題

執行結果

[root@VM_0_4_centos sun]# docker build -t sbindocker/v1.1 .
Sending build context to Docker daemon  345.2MB
Step 1/13 : FROM centos
 ---> 9f38484d220f
Step 2/13 : MAINTAINER 945130012@qq.com
 ---> Running in 229e0298fae1
Removing intermediate container 229e0298fae1
 ---> 35f3dfe84efb
Step 3/13 : WORKDIR /usr
Removing intermediate container 93a2a3af2550
 ---> 4cce0e422b68
Step 4/13 : RUN mkdir jdk
 ---> Running in 2d9af2651c7b
Removing intermediate container 2d9af2651c7b
 ---> 8734ad8e6085
Step 5/13 : RUN mkdir tomcat
 ---> Running in 6cc15095685e
Removing intermediate container 6cc15095685e
 ---> 9d1afb700a70
Step 6/13 : ADD jdk1.6.0_45 /usr/jdk/
 ---> 9f82dfde99c0
Step 7/13 : ADD apache-tomcat-6.0.37 /usr/tomcat/
 ---> 91e803774d96
Step 8/13 : ENV JAVA_HOME=/usr/jdk
 ---> Running in 164fba051657
Removing intermediate container 164fba051657
 ---> e4fdbdf1aa3d
Step 9/13 : ENV JRE_HOME=$JAVA_HOME/jre
 ---> Running in ed24e20cb48c
Removing intermediate container ed24e20cb48c
 ---> 264978fcda87
Step 10/13 : ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
 ---> Running in 0705f2deab04
Removing intermediate container 0705f2deab04
 ---> 6671fe33cdb4
Step 11/13 : ENV PATH=/sbin:$JAVA_HOME/bin:$PATH
 ---> Running in b4c81dde0f4b
Removing intermediate container b4c81dde0f4b
 ---> ca4640d5636e
Step 12/13 : EXPOSE 8080
 ---> Running in ba86dfe44a41
Removing intermediate container ba86dfe44a41
 ---> 4a18dd932885
Step 13/13 : ENTRYPOINT ["/usr/tomcat/bin/catalina.sh","run"]
 ---> Running in e82489de63d1
Removing intermediate container e82489de63d1
 ---> ede60ca4f52c
Successfully built ede60ca4f52c
Successfully tagged sbindocker/v1.1:latest
docker build

 

步驟六:在eclipse/MyEclipse中打包war包(war包中連接數據需為Linux宿主機的IP:Port),在/home/sun/下創建目錄webapps,並將war包傳到到該目錄下。

 

 步驟七:打包剛才構建好的鏡像,並將/home/sun/webapps/businessManager.war 掛載到容器的/usr/tomcat/webapps/businessManager.war中。指令如下:

docker run --name hello -p 8080:8080 -v /home/sun/webapps/businessManager.war:/usr/tomcat/webapps/businessManager -d sbindocker/hello

 

步驟八:輸入docker ps指令、netstat   -nultp、docker logs --tail 100 -f hello 指令查看容器狀態,端口占用情況和應用運行日志

至此,即完成web項目在docker容器下的部署,在docker中創建好MySQL容器后,即可在瀏覽器輸入Linux主機的IP:8080/businessManager 即可訪問項目

 

注意:除了java文件,任何在docker容器中可以查看到的真實存在的文件內容都可以直接在容器中進行修改(即使是lib下的jar包都行),改完后需要重啟容器(docker restart 容器ID/名稱)(適用於小范圍改動),若整個項目進行了較大的改動,只需將打包好的war包重新拷貝到Linux主機的/home/sun/webapps/下即可,無需重啟容器。


免責聲明!

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



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