1. 程式人生 > >構建Docker鏡像:tomcat

構建Docker鏡像:tomcat

ets 用戶 ·· ext NPU col running 中一 cal

Dockerfile介紹

Dockerfile是由一組指令組成的文件,每條指令對應linux中一條命令,Docker程序將讀取Dockerfile中的指令生成指定鏡像。
Dockerfile大致結構:基礎鏡像信息、維護者信息、鏡像操作指令、容器啟動時執行指令。每行支持一條指令,每條指令可以攜帶多個參數,支持以 # 開頭的註釋。
Dockerfile操作指令:

FROM 鏡像 : 指定新的鏡像所基於的鏡像
MAINTAINER 名字 :說明新鏡像的維護人
RUN 命令 : 在所基於的鏡像上執行命令,並提交到新的鏡像中
CMD ["要運行的程序","參數1","參數2"] : 指定啟動容器時要運行的命令或腳本

EXPOSE端口號 : 指定新鏡像加載到Docker時要開啟的端口
ENV環境變量 變量值 : 設置一個環境變量的值,會背後面的RUN用到
ADD源文件/目錄 目標文件/目錄 :將源文件復制到目標文件 ,源文件和Dockerfile位於同一目錄
COPY源文件/目錄 目標文件/目錄 :將本地主機的源文件復制到目標目錄,源文件和Dockerfile位於同一目錄
VOLUME["目錄"] : 在容器中創建一個掛載點
USER 用戶名 /UID :指定運行容器時的用戶
WORKDIR路徑 : 為後續的RUN 、CMD、ENTRYPOINT 指定工作目錄
ONBUILD命令 : 指定所生成的鏡像作為一個基礎鏡像時所要運行的命令。

構建Nginx鏡像
創建工作目錄以及下載解壓安裝包

[root@test3 ~]# docker pull centos  基礎鏡像
[root@test3 ~]# mkdir  tomcat
[root@test3 ~]# mv apache-tomcat-8.5.34.tar.gz tomcat/
[root@test3 ~]# mv jdk-8u181-linux-x64.tar.gz tomcat/
[root@test3 ~]# cd tomcat/
[root@test3 tomcat]# tar xvf apache-tomcat-8.5.34.tar.gz 
[root@test3 tomcat]# tar xvf jdk-8u181-linux-x64.tar.gz 

創建Dockerfile文件

# vim Dockerfile   //編寫Dockerfile

# 設置基礎鏡像
FROM centos
# 維護該鏡像的用戶
MAINTAINER this is tomcat image <sz>
# 安裝JDK環境,設置其環境變量
ADD jdk1.8.0_181 /usr/local/java
ENV JAVA_HOME /usr/local/java
ENV JAVA_BIN /usr/local/java/bin
ENV JRE_HOME /usr/local/java/jre
ENV PATH $PATH:/usr/local/java/bin:/usr/local/java/jre/bin
ENV CLASSPATH /usr/local/java/jre/bin:/usr/local/java/lib:/usr/local/java/jre/lib/charsets.jar
ADD apache-tomcat-8.5.34  /usr/local/tomcat
#開啟端口
EXPOSE 8080

生成鏡像:

[root@test3 tomcat]#  docker build -t tomcat:centos .
······
Removing intermediate container fe9e7d2565aa
Step 10/10 : EXPOSE 8080
 ---> Running in 24dcbc4d1afc
 ---> 214b8cfca21c
Removing intermediate container 24dcbc4d1afc
Successfully built 214b8cfca21c

運行並進入容器:

[root@test3 tomcat]# docker run --name tomcat01 -p 80:8080 -it  tomcat:centos /bin/bash

啟動Tomcat:

[root@8c5ce8dd9282 /]# /usr/local/tomcat/bin/startup.sh 
······
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

測試:
技術分享圖片
註:把鏡像保存到本地

[root@test3 tomcat]# docker save -o centos_tomcat.tar  tomcat:centos

centos_tomcat.tar 為保存到本地後的包名
tomcat:centos 為被打包的對象鏡像

如果在一臺新機器還原docker鏡像

[root@test2 ~]# docker load --input centos_tomcat.tar 
······
Loaded image: tomcat:centos

構建Docker鏡像:tomcat