java打包docker鏡像

上一篇博客“最簡單的spring boot打包docker鏡像 ”講到spring boot項目打包成docker鏡像,然而那個方法儘管能打包成docker鏡像,實際上我並沒能用那個方法成功運行打包到docker的jar包。

今天正好在“開源中國”社區看到另一種方法,試了一下,運行很順利,而且沒有那麼麻煩,這裏記錄一下。

首先,spring boot裏的pom.xml文件不需要改動,也就是說不需要在maven裏特意添加docker配置,像平常一樣對spring boot項目用

mvn clean install package

命令進行打包成jar包就行了。

接下來重點在於Dockerfile文件的配置,這個纔是決定jar包能否順利打包成docker鏡像的關鍵,詳細步驟如下:

1、編寫Dockerfile文件,就和之前說的一樣,新建一個txt文件,編輯完之後將後綴去掉。當然你也可以直接用notepad來編輯。Dockerfile內容具體如下:

# java 是一個已有的包含 jdk 的鏡像
From java:8
#  作者簽名
MAINTAINER yangjian
#  簡化 jar 的名字路徑 (#:表示註釋掉)
COPY yang-0.0.1.jar /yang.jar
#  執行 java -jar 命令 (CMD:在啓動容器時才執行此行。RUN:構建鏡像時就執行此行)
CMD java -jar /yang.jar
#  設置對外端口爲 8090
EXPOSE 8090

2、將Dockerfile文件放在和jar包同一目錄下(你的項目的target目錄下),因爲設置路徑很麻煩,建議放在同一目錄下,不過Dockerfile文件要做個備份,免得重新打包jar包時把文件弄丟了。

3、使用打包docker鏡像的命令進行打包:

# 構建鏡像  在Dockerfile 目錄下執行  yang爲你取得鏡像名稱  注意:1、名稱不能大寫,2名稱後面的空格和點必帶
docker build -t yang .

使用docker images命令即可查看到你所打包的鏡像。

4、使用命令運行docker鏡像:

#-d 在run後面加上-d參數,則會創建一個守護式容器在後臺運行
#-p 表示端口映射,前者是宿主機端口,後者是容器內的映射端口。可以使用多個-p 做多個端口映射
#--name 爲創建的容器命名 
docker run -d -p 8090:8090 --name yang01 yang

此時打開瀏覽器輸入url即可看到你Java的運行效果。

關於docker,Windows10以前的系統只能用docker tool來跑,但我沒試過,不清楚具體情況。而Windows10的家庭版是不能直接安裝docker的,需要修改註冊表,把系統標識臨時修改成專業版且在控制面板上勾上Hyper-V才能安裝,具體可以自行百度,這裏就不贅述。

如果你把docker看作是一個Linux或Windows操作系統,就不難理解爲什麼可以直接在docker上運行Java程序了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章