使用Dockerfile製作Docker映象
最近專案中使用到Docker,因此趁在週末時間,研究下Docker。Docker環境安裝之前已經安裝就緒,請參考:《在Centos中安裝Docker CE》。我們從簡單的開始,使用Dockerfile製作一個能執行Java應用程式的Docker映象
1、準備JDK和Tomcat,將JDK和Tomcat放到/usr/local/soft目錄下,soft目錄是我自己新增的
2、在/usr/local/soft目錄下建立Dockerfile檔案,檔案內容如下
#VERSION 0.0.1
#base image
FROM ubuntu:latest
MAINTAINER longwentao “[email protected] 126.com”
#install jdk and tomcat
ADD jdk-7u79-macosx-x64.dmg /usr/local/
ADD apache-tomcat-7.0.72 /usr/local/apache-tomcat-7.0.72
ADD onStart.sh /usr/local/
ENV JAVA_HOME=/usr/local/jdk1.7.0_79 CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar PATH=$PATH:$JAVA_HOME/bin
RUN echo "JAVA_HOME=/usr/local/jdk1.7.0_79.jdk CALSSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar\nPATH=$PATH:$JAVA_HOME/bin" >> /etc/profile
#add execute privilege
RUN chmod +x /usr/local/onStart.sh
EXPOSE 8888
#start tomcat
ENTRYPOINT /usr/local/onStart.sh
TIPS:
1) FROM 表示基於哪個基礎映象製作映象,這裡是基於ubuntu的最新映象
2) MAINTAINER 表示由哪個維護這個映象
3) ADD 表示將宿主機上的檔案複製到映象的指定目錄,這裡是將jdk和tomcat複製到映象的/usr/local目錄下;onStart.sh是另一個檔案,在ENTRYPOINT中會指定需要執行什麼樣的命令,因此將這些命令統一放在onStart.sh檔案中
4) 因此onStart.sh是新增檔案,因此還需要給它新增可執行許可權,不然會報許可權錯誤
5) ENV 表示指定環境變數
6) RUN 執行指定的命令,這裡用於配置Java環境變數
7) EXPOSE 8888 指定暴露8888埠
8) ENTRYPOINT 進入點,後面跟的是需要執行的指令碼
3、在/usr/local/soft目錄下建立onStart.sh檔案,檔案內容如下
#!/bin/bash
/usr/local/apache-tomcat-7.0.72/bin/startup.sh
#tail -f /usr/local/apache-tomcat-7.0.72/logs/onSart.log
4、進入到/usr/local/soft目錄下,使用docker build 製作Docker映象
docker build -t="tomcat-ubuntu:v1.0" .
TIPS:
1) -t=”tomcat-ubuntu:v1.0” 指定映象名稱為tomcat-ubuntu,tag為v1.0
2) 最後的一點(.)表示當前目錄下的Dockerfile檔案
5、最後通過docker images檢視生成的映象