docker-使用Dockerfile制作鏡像


  最近項目中有使用docker,組內做了關於docker的培訓,然后自己跟着研究了一下,大概了解如何使用。我是基於tomcat鏡像制作(不需要安裝jdk,配置環境變量),基於centos鏡像制作需要安裝jdk,配置環境變量,下面會詳細寫到。前提准備:在centos機器上安裝好docker。

一、基於tomcat鏡像

1.  搜索並tomcat鏡像

docker search tomcat

2. 第一個的 stars最多,而且是官方的,就是你了~

 下載鏡像:

docke pull tomcat

 查看本地鏡像:

docker images

3. 制作Dockfile文件

(1)touch Dockerfile (沒有Dockerfile 文件的話會自動創建一個)

(2)vim Dockerfile 

# Base image to use, this nust be set as the first line(form會先從本地鏡像查找,如果沒有回去docker倉庫下載)
FROM tomcat

# Maintainer: docker_user <docker_user at email.com> (@docker_user)
MAINTAINER xtt

#拷貝配置文件和項目war包
COPY xtt_only/usr/local/xinsight  /usr/local/xinsight
ADD xtt_only/etl.war /usr/local/tomcat/webapps

#配置端口號
EXPOSE 8080

# Commands when creating a new container
ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh", "run"]

(3)編譯Dockerfile文件

docker build -t xtt:v1 .

備注: 
1) -t xtt:v1  指定鏡像名稱為xtt ,tag為v1 
2) 最后的一點(.)表示當前目錄下的Dockerfile文件,會自動識別到當前路徑下的Dockerfile文件

4. 運行此鏡像,啟動容器看是否成功

- 查看本地鏡像: 

docker images

- 運行此鏡像: 

docker run ee4

容器運行成功~

- 檢查一下,查看當前正在運行的容器:

docker ps

 

二、基於centos鏡像

需要下載jdk和tomcat安裝包,並且在Dockerfile里面配置環境變量,其它保持不變。

1. 將jdk和tomcat安裝包拷貝到虛擬機上

2. 修改Dockerfile文件

FROM docker.io/centos

MAINTAINER xtt

#切換鏡像目錄(類似cd命令),進入/usr目錄
WORKDIR /usr

#在/usr/下創建jdk目錄,用來存放jdk文件
RUN mkdir jdk1.8.162

#將宿主機的jdk目錄下的文件拷至鏡像的/usr/jdk目錄下
ADD jdk1.8.0_162 /usr/jdk1.8.162/

#將宿主機的tomcat目錄下的文件拷至鏡像的/usr/tomcat目錄下,將etl的war拷貝到webapps目錄下
RUN mkdir tomcat8.5.32
COPY tomcat8.5.32 /usr/tomcat8.5.32/
ADD xtt_only/etl.war /usr/local/tomcat/webapps #拷貝項目環境配置文件
COPY xtt_only/usr/local/xinsight /usr/local/xinsight
#設置環境變量 ENV JAVA_HOME=/usr/jdk1.8.162 ENV JRE_HOME=$JAVA_HOME/jre ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH ENV PATH=/sbin:$JAVA_HOME/bin:$PATH #公開端口 EXPOSE 8080 #設置啟動命令 ENTRYPOINT ["/usr/tomcat8.5.32/bin/catalina.sh","run"]

備注: 
1) FROM 表示基於哪個基礎鏡像制作鏡像,這里是基於ubuntu的最新鏡像 

2) MAINTAINER 表示由哪個人維護這個鏡像 

3) ADD 、COPY表示將宿主機上的文件復制到鏡像的指定目錄,ADD比COPY多一個特性:如果是壓縮包拷貝過去會自動解壓(源路徑一定要是Dockerfile的相對路徑)

4) ENV 表示指定環境變量 

5) RUN 運行指定的命令,格式:RUN+ linux命令(RUN mkdir 創建目錄)

6) EXPOSE 8080 指定暴露8080端口 

7) ENTRYPOINT 進入點,后面跟的是需要執行的腳本


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM