使用Dockerfile構建一個簡單的SpringBoot鏡像

在足球還叫蹴鞠的時候,我就寫了一篇有關於dockerfile的文章,本來想着靠那篇文章火一把,從此脫離開發仔的身份,專心寫文。結果很意外,這篇Dockerfile指令詳解的文章竟然訪問量比我的頭髮還少。甚至好長一段時間我都忘了它的存在,該死!

在經過了長時間的思考後,我終於知道爲什麼這篇文章會不火了,我他媽沒買量!!!

好吧,上面扯那麼多其實就是爲了植入我那篇過氣的文章。下面進入主題。

在我們想把自己的程序打包成鏡像,並運行在docker容器中的時候我們應該怎麼做呢?

1.編寫Dockerfile文件。

不瞭解Dockerfile指令的請跳轉鏈接。

#指定基礎鏡像(一般指定程序所依賴的環境)
#本例子是構建SpringBoot所以我指定的jdk環境變量
FROM openjdk:11

#添加維護者信息
MAINTAINER author:edison
MAINTAINER mail:[email protected]

#將./hello-world.jar添加到容器的/opt目錄中
COPY ./hello-world.jar /opt

#指定dockerfile的命令在哪個目錄下執行
WORKDIR /opt

#指定容器和外界交互的端口
EXPOSE 80

#容器運行後執行的命令(該命令在WORKDIR指定的工作目錄下執行)
#注意:多個CMD指令只有最後一個會生效
CMD java -jar hello-world.jar

#在構建鏡像時執行的命令
#我這邊用它來打印java的環境變量
RUN java -version

#添加該鏡像的元數據
LABEL version="1.0" description="這是一個Web服務器" by="edc"

2.將你的Dockerfile文件和你的jar包放在同一個目錄裏

注意:Dockerfilejar包最好存放在一個創建好的空目錄裏,不要放在/目錄中,因爲構建是由Docker守護程序而不是CLI運行的。構建過程要做的第一件事是將整個上下文(遞歸)發送到守護程序。在大多數情況下,最好以空目錄作爲上下文,並將Dockerfile保留在該目錄中。僅添加構建Dockerfile所需的文件。所以如果你要是將Dockerfile放在/目錄構建,你就是在犯罪,懂嗎?
在這裏插入圖片描述

由於我上面dockerfile的例子hello-world.jar是放在./目錄下也就是和Dockerfile的同一目錄,如果說你的jar包不和dockerfile同一目錄的話那麼COPY指令的那個./hello-world.jar就要換成你jar包存放的路徑。


3.在Dockerfile所在的目錄下運行docker build --tag web:latest .命令

不瞭解docker build命令的請跳轉鏈接。

注意:docker build 後面要加.參數,代表着構建當前目錄的Dockerfile文件。而--tag是給鏡像取一個名字,並指定鏡像的版本號,此時構建好的鏡像名字爲web,版本號爲latest
在這裏插入圖片描述
可以看到執行了docker build .後除了打印指令的執行信息之外還在8/9行中打印了容器裏的JDK環境變量,這是因爲我使用RUNz執行了java -version命令。


4.我們執行一下docker images命令查看我有沒有我們剛剛構建好的鏡像
在這裏插入圖片描述
這時候表示鏡像構建成功。


5.使用docker run通過構建好的新鏡像跑一個容器
在這裏插入圖片描述


6.訪問一下
在這裏插入圖片描述

成功!!!

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