將springboot jar包項目打包成Docker鏡像並運行。
前提:
CenterOS7阿里雲輕量級服務器已經安裝有Docker。
連接服務器的命令界面推薦安裝工具:PShell或xshell6或者 putty三者之一。
步驟:
1.在服務器中創建一個文件夾DockerTest用於存放上傳的springboot jar包,我創建的文件夾名。
2.創建一個springboot項目並打包成jar包,並把jar包上傳到服務器步驟1中的文件夾中。
注意:此項目打包前最好在本地運行,看看項目是否能正常跑起來。我的本地運行結果如下:
【
此處省略內容:
省略服務器安裝Docker過程。具體過程參照菜鳥教程。
省略創建springboot項目過程。
省略項目打包成jar的過程。
】
3.進入步驟1中創建的文件夾,使用vim命令創建並編輯文件,文件名稱爲:Dockerfile。用於存放編寫打包鏡像的配置。
注意:文件名稱必須爲這個名字,不然之後要指定文件名。強烈建議不要改名字。
命令如下:
vim Dockerfile
4.進入編輯界面。將一下的配置按照自己實際的進行修改。修改後保存退出。回到命令窗口界面。
#注意,docker命令全部大寫,這是規定。
# From 關鍵字表示,jar包依賴的環境。java:8 相當於jdk1.8
FROM java:8
#ADD命令
# docker-0.0.1-SNAPSHOT.jar:這是你上傳jar包的名稱。
# /build_docke.jar:這是自定義的名稱。但是注意要有之前的/
ADD docker-0.0.1-SNAPSHOT.jar /build_docke.jar
#MAINTAINER 作者名稱。可以刪除不寫。
MAINTAINER zhangxiaosan
#EXPOSE 項目暴露的端口號
EXPOSE 8080
#/build_docke.jar此處的名稱要和ADD命令後面的一樣。
ENTRYPOINT ["java","-jar","/build_docke.jar"]
5.進入步驟1文件夾。執行一下命令:
注意:最後面的點。
docker build -t build_docke:v1 .
說明:
build_docke 代表要打包成的鏡像名稱。按照自己實際情況寫。
:v1 代表版本號,可以不寫則默認爲latest
. 代表爲當前目錄。這就是爲什麼一直在步驟一文件夾中進行操作,並且Dockerfile在此文件夾中的原因。
若之前Dockerfile不在步驟一的文件夾中 則需要指定到對應的地址。【不建議】
打包成功如下:
可以使用 docker images命令查看所有的鏡像。效果如下:
6.運行鏡像,命令如下:
docker run --name build_docke -d -p 8080:8080 build_docke:v1
說明:
build_docke:運行時給鏡像取的別名,自定義。
-d 代表要後臺運行。
-p 代表要在後面要映射端口。
8080:8080 前者爲docker的原項目端口,後者爲服務器的端口且服務器要開放此端口。
build_docke 鏡像的名稱。
:v1 鏡像的標籤或者是版本號。爲latest時可以不指定。
結果如下:
可以使用命令:docker logs 運行的鏡像id 來查看運行日誌 ,如下圖:
注意,id可以根據命令:docker ps -a 來查看
7.訪問: