1. 程式人生 > >Docker----製作一個帶有JDK和tomcat的docker映象

Docker----製作一個帶有JDK和tomcat的docker映象

製作一個帶有JDK和tomcat的docker映象

也許你和我一樣,想要自己親手製作一個熱乎乎的映象,最好自己指定JDK版本和tomcat版本。當然,這是可以的。 
根據我的水平,目前有兩種辦法可以製作我想要的這個映象。來,我們先說簡單點的。

方式一

首先,準備好想要的jdk和tomcat,另外,我們需要建立一個Dockerfile檔案,什麼,你說你不知道Dockerfile是什麼也不會寫Dockerfile檔案?哦,那也沒關係吧,你Ctrl+C就好了。下面展示一個Dockerfile檔案的完整內容:

FROM         ubuntu:14.10
MAINTAINER    linx

#把java與tomcat新增到容器中
ADD jdk-8u31-linux-x64.tar.gz /usr/local/ ADD apache-tomcat-8.0.20.tar.gz /usr/local/ #配置java與tomcat環境變數 ENV JAVA_HOME /usr/local/jdk1.8.0_31 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV CATALINA_HOME /usr/local/apache-tomcat-8.0.20 ENV CATALINA_BASE /usr/local/apache-tomcat-8.0.20 ENV PATH $PATH:$JAVA_HOME
/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin #容器執行時監聽的埠 EXPOSE 8080
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

當然,你還是要修改一點點的,就是jdk和tomcat的版本啊,然後版本後面對應的路徑啊,其餘的就可以不改了。 
然後呢,jdk和tomcat和這個檔案需要放在同一個路徑中。 
在然後,在當前路徑中召喚出終端,輸入

docker build –t linx/tomcat

這個命令會遵從Dockerfile檔案的規則構建映象。猴子造完了之後,run起來,使用下面的命令啟動tomcat

./usr/local/apache-tomcat
-8.0.20/bin/startup.sh
  • 1

OK,訪問8080埠吧,可以看到熟悉的那隻貓了。 
過程就這麼多,開始題外話:容器開放了8080埠,但是你訪問容器裡面的tomcat並不是用8080哦,你懂的,容器的埠需要你主動對映到宿主機的某個埠的,算了,告訴你一個命令吧,來做埠對映:

#sudo docker run -d -p 5000:8080 training/webapp
  • 1

啟動一個容器的時候可以藉助於-p引數來將8080埠對映成主機的5000埠,這樣你訪問主機的5000埠就到容器的8080埠啦。 
還有,實際上,Dockerfile檔案幫你完成了容器裡面環境變數的設定啊等等內容,其實還可以做更多更強大的事,你必須一定要自己查文件看!

方式二

雖然麻煩,還是提一下,畢竟也是非常正常的途徑。 
首先呢,下一個隨便個什麼系統的空的映象吧,然後run起來,進去,其實你此時面對的就是一個剛裝了新系統的主機啊,所以其實你又懂了,開始下載想要的jdk和tomcat吧,哦,原來你的主機上已經下好了,那好,這樣:

docker run -i -t -v /root/software/:/mnt/software/ 25c5298b1a36 /bin/bash
  • 1

上面這個方式來啟動容器可以實現將你的software資料夾掛載到容器的mnt/software/目錄下,所以呢,等你進去容器,進到那個資料夾就已經看到你想要的jdk和tomcat了。 
好了,開始解壓吧,開始設定環境變數吧。什麼,不知道Linux中怎麼設定環境變數?那就不弄了吧。

vi ~/.bashrc,進入vi編輯模式
在末尾新增如下配置
export JAVA_HOME=/opt/jdk/bin
export PATH=$PATH:$JAVA_HOME
輸入wq退出vi介面
//讓環境變數生效
source ~/.bashrc
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

上面一小段Linux設定環境變數的方法,僅供參考,更多的方式更強大的功能你必須要查文件! 
所以呢,我們現在是設定好了jdk和tomcat的環境變量了對吧,還沒好?哦,我們接著說下一步,這個時候不是已經在容器裡面設定好了環境變量了嗎,可以輸入java -version測一下好使了沒有。然後輸入

exit
  • 1

退出容器,此時容器處於暫停狀態,再然後

docker ps -a,列出所有的容器
  • 1

看到剛剛exit的容器,記住容器id,因為我們要根據該id創建出新的自己的映象,使用如下命令:

docker commit 57c312bbaad1 myName/javaweb
  • 1

然後我們就創建出了一個名叫javaweb的映象了,裡面的jdk和tomcat都是我們指定的。