1. 程式人生 > 其它 >Docker(三)——Dockerfile自定義映象

Docker(三)——Dockerfile自定義映象

Dockerfile自定義映象

映象結構

常見的映象在DockerHub就能找到,但是我們自己寫的專案就必須自己構建映象了。

而要自定義映象,就必須先了解映象的結構才行。

映象是將應用程式及其需要的系統函式庫、環境、配置、依賴打包而成。

我們以MySQL為例,來看看映象的組成結構:


簡單來說,映象就是在系統函式庫、執行環境基礎上,新增應用程式檔案、配置檔案、依賴檔案等組合,然後編寫好啟動指令碼打包在一起形成的檔案。

我們要構建映象,其實就是實現上述打包的過程。

Dockerfile語法

構建自定義的映象時,並不需要一個個檔案去拷貝,打包。

我們只需要告訴Docker,我們的映象的組成,需要哪些BaseImage、需要拷貝什麼檔案、需要安裝什麼依賴、啟動指令碼是什麼,將來Docker會幫助我們構建映象。

而描述上述資訊的檔案就是Dockerfile檔案。

Dockerfile就是一個文字檔案,其中包含一個個的指令(Instruction),用指令來說明要執行什麼操作來構建映象。每一個指令都會形成一層Layer。

更新詳細語法說明,請參考官網文件: https://docs.docker.com/engine/reference/builder

構建Java專案

1).基於Ubuntu構建Java專案
需求:基於Ubuntu映象構建一個新映象,執行一個java專案

資料下載:課前資料

  • 步驟1:新建一個空資料夾docker-demo
  • 步驟2:拷貝課前資料中的docker-demo.jar檔案到docker-demo這個目錄

  • 步驟3:拷貝課前資料中的jdk8.tar.gz檔案到docker-demo這個目錄

  • 步驟4:拷貝課前資料提供的Dockerfile到docker-demo這個目錄

其中的內容如下:

# 指定基礎映象
FROM ubuntu:16.04
# 配置環境變數,JDK的安裝目錄
ENV JAVA_DIR=/usr/local

# 拷貝jdk和java專案的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/app.jar

# 安裝JDK
RUN cd $JAVA_DIR \
 && tar -xf ./jdk8.tar.gz \
 && mv ./jdk1.8.0_144 ./java8

# 配置環境變數
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin

# 暴露埠
EXPOSE 8090
# 入口,java專案的啟動命令
ENTRYPOINT java -jar /tmp/app.jar
  • 步驟5:進入docker-demo
    將準備好的docker-demo上傳到虛擬機器任意目錄,然後進入docker-demo目錄下

  • 步驟6:執行命令:

docker build -t javaweb:1.0 .

最後訪問 http://192.168.150.101:8090/hello/count,其中的ip改成你的虛擬機器ip