簡介:將jar打包成鏡像好說,畢竟jar包長的都是同樣的,可是咱們只是寫了一個普通的java項目,我也不方便封裝成jar包什麼的,可是咱們也想打包docker image怎麼辦呢,咱們能夠用編譯後的java文件打包鏡像java
思路:jdk和tomcat封裝在一個鏡像中,mysql是另外一個單獨的鏡像,咱們把編譯後的代碼放在tomcat中,編譯後的代碼在哪本身google,baidumysql
步驟:1.本地下好tomcat和jdk(有時候遠程太慢了,就再也不Dockerfile寫遠程了),將tomcat解壓,將編譯後的java文件放在tomcat的webapp下,jdk無論它linux
這裏須要注意apache是本身新建的一個目錄,真正的tomcat在它的下面,爲何這麼弄呢,由於在Dockerfile中ADD的時候,copy的是目錄下的文件,而目錄自己不復制,那沒辦法本身我本身加一層目錄了web
Dockerfile內容(Dockerfile必定要跟jdk和tomcat什麼的在同一目錄):sql
FROM centos:latest
MAINTAINER waterlufeidocker
#install jdk and tomcat
ADD jdk-8u121-linux-x64.tar.gz /usr/java/
ADD apache /home/schoolapp/apache
#jdk enviroment
ENV JAVA_HOME=/usr/java/jdk1.8.0_121
ENV JRE_HOME=/usr/java/jdk1.8.0_121/jre
ENV CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
ENV PATH=$JAVA_HOME/bin:$PATHcentos
EXPOSE 8080瀏覽器
#tomcat self start
CMD ["/home/schoolapp/apache-tomcat-7.0.76/bin/catalina.sh","run"]tomcat
簡單說明下:用到了centos鏡像作系統,做者是waterlufei,將jdk-8u121-linux-x64.tar.gz 存放在容器內部的 /usr/java/目錄,將tomcat存放在容器內部/home/schoolapp/目錄下,不是主機所在目錄喔,配置jdk環境變量,開放容器端口8080,最後讓tomcat自啓動
配置好了Dockerfile,
打包docker images 命令: docker build -t myapp . (.不要忘了)
查看鏡像有沒有打包好: docker images
將鏡像放到容器中運行:docker run -d -p 8080:8080 myapp
瀏覽器訪問,成功訪問項目主頁