dockerfile構建Tomcat映象
阿新 • • 發佈:2020-09-10
dockerfile構建Tomcat映象
一、映象分層概念
二、製作tomcat映象
2.1、建立分層目錄
[root@node2 ~]# mkdir /app/{web/{nginx,tomcat,jdk},system/{centos,alpine,ubantu}} -pv
2.2、製作基礎centos映象
[root@node2 ~]# cd /app/system/centos/ [root@node2 centos]# vim Dockerfile #Centos 7.6 base images FROM centos:7.6.1810 LABEL tzh [email protected] RUN yum install -y pcre-devel wget net-tools gcc zlib zlib-devel make openssl-devel vim #建立tzh組、tzh使用者,然後把使用者tzh新增到tzh組中 RUN groupadd tzh -g 2020 && useradd tzh -u 666 -g tzh #構建,實際上生產這樣構建不合適。應該搞個指令碼構建,要不然容易忘記映象是幹嘛的!! [root@node2 centos]# docker build -t centos-base:7.6 .
2.2.1、編寫指令碼,方便日後構建映象,方便記錄映象名稱
#同級目錄下
[root@node2 centos]# pwd
/app/system/centos
#編寫指令碼,先寫固定了,後期可以把centos-base和7.6做手動傳入的引數
[root@node2 centos]# vim build-command.sh
#!/bin/bash
docker build -t centos-base:7.6 .
#呼叫,加許可權 ./build-command.sh也行
[root@node2 centos]# bash build-command.sh
2.3、構建jdk映象
[root@node2 ~]# cd /app/web/jdk [root@node2 jdk]# mkdir jdk-8u221 [root@node2 jdk]# cd jdk-8u221/ #找到要上傳的jdk版本,上傳到伺服器當前目錄下 [root@node2 jdk-8u221]# rz #準備好以下檔案 [root@node2 jdk-8u221]# ll total 190532 -rw-r--r-- 1 root root 624 Sep 10 09:14 Dockerfile -rw-r--r-- 1 root root 195094741 Dec 24 2019 jdk-8u221-linux-x64.tar.gz -rw-r--r-- 1 root root 2150 Sep 10 09:18 profile #編寫Dockerfile [root@node2 jdk-8u221]# vim Dockerfile #FORM 的是剛剛我們做的基礎centos映象 FROM centos-base:7.6 LABEL tzh [email protected] #新增到映象中,ADD會幫我們解壓 ADD jdk-8u221-linux-x64.tar.gz /usr/local/src/ RUN ln -sv /usr/local/src/jdk1.8.0_221 /usr/local/java #新增配置檔案 ADD profile /etc/profile #新增java的環境變數(不加這個root登入沒有java環境) ENV JAVA_HOME /usr/local/java ENV JRE_HOME $JAVA_HOME/jre ENV CLASSPATH $JAVA_HOME/lib/:$JRE_HOME/lib/ ENV PATH $PATH:$JAVA_HOME/bin #統一時間,做軟連結。ln [引數][原始檔或目錄][目標檔案或目錄] RUN rm -rf /etc/localtime && ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2.3.1、編寫指令碼,方便日後構建映象,方便記錄映象名稱
#同級目錄下 [root@node2 jdk-8u221]# pwd /app/web/jdk/jdk-8u221 #編寫指令碼,以後優化 [root@node2 centos]# vim build-command.sh #!/bin/bash docker build -t centos-jdk:jdk-8u221 . #呼叫,加許可權 ./build-command.sh也行 [root@node2 centos]# bash build-command.sh Successfully built e5a7d9fba0af Successfully tagged centos-jdk:jdk-8u221 #認證是否能用 [root@node2 jdk-8u221]# docker run --rm -it centos-jdk:jdk-8u221 bash [root@400048eeca6b /]# java -version
2.4、構建tomcat映象
#進入tomcat目錄
[root@node2 ~]# cd /app/web/tomcat/
[root@node2 tomcat]# mkdir tomcat9.0
[root@node2 tomcat]# cd tomcat9.0/
#上傳tomcat安裝包上來
[root@node2 tomcat9.0]# rz
#編寫最基本的,如果對tomcat優化過,可以把優化過的包替換
#構建最基礎的tomcat映象,等有需要部署程式碼了,再pull這個基礎映象,做不同的配置
[root@node2 tomcat9.0]# vim Dockerfile
FROM centos-jdk:jdk-8u221
LABEL maintainer="tzh <[email protected]>"
ADD apache-tomcat-9.0.27.tar.gz /app
RUN ln -sv /app/apache-tomcat-9.0.27 /app/tomcat