步驟一:在主機下載安裝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
步驟六:在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/下即可,無需重啟容器。