前端時間須要把項目打包到docker中運行,因而就讓組員去探索,最後整個過程是這樣的。前端
首先咱們作java開發,通常都是使用springboot開發,開發完成,咱們須要把springboot項目打包成jar包。此時咱們jar包就能在服務器上使用 java -jar xxxx.jar 運行項目了,可是在docker中,須要把jar包在打包成鏡像。java
個人開發環境是windows,而後是雙系統,我在任意一個文件夾,shift+鼠標右鍵就能調出linux界面linux
首先咱們須要編寫一個Dockerfile文件 ,把它和springboot打包好的jar包,放到同一個文件夾下面。若是你用linux系統,就把jar包和Dockerfile文件上傳到linux系統下,只要保證是在同一個目錄下面便可。spring
Dockerfile內容以下:docker
FROM registry.otrs365.cn/servicecool/jdk:8u241 #基礎鏡像,當前新鏡像是基於那個鏡像, 像這裏就是基於java 8環境 ADD diantong-IP-4.0.0-SNAPSHOT.jar diantong-IP.jar #diantong-IP-4.0.0SNAPSHOT.jar爲你SpringBoot打包最終的成包名稱,別名爲diantong-IP.jar EXPOSE 9081 # 這個是你項目的要暴露的端口,你項目的端口是什麼這裏就寫什麼 ENTRYPOINT ["java","-jar","/diantong-IP.jar"] #這句話至關於 java -jar diantongIP.jar
linux系統下,FROM 後面指向你docker中安裝的jdk的鏡像windows
注意,Dockerfile是沒有後綴的。springboot
接下來就是構建鏡像了服務器
在存放Dockerfile和項目jar的目錄下,執行如下的命令(注意後面有一個 . 不能少)ui
docker build -t diantong-ip .
這裏有一個坑,就是你jar包的名稱不能有大寫的,有大寫你在運行上面命令時也要把大寫改爲小寫
等待運行完成,執行成功後docker中就多了個鏡像了。執行下面命令查看你的鏡像:spa
docker images
啓動容器
-p這個屬性我這邊詳細說一下:9081:9081的意思是將我宿主機的9081端口映射到容器端口9081,我在前
面已經配置過這個端口了
docker run -d -p 9081:9081 diantong-ip
啓動成功,使用
docker ps
就能看到容器了,至此,一個springboot應用就成功放到docker中運行了。
若是須要把這個應用給你的朋友,那隻須要
docker save -o diantongip.tar diantong-ip:latest
就會獲得一格diantongip.tar壓縮包,把這個壓縮包發給你的朋友
使用如下命令,就能導進他的docker裏面了
注:此文章寫於2021/08/11 若時間過長,文章內容步驟稍有誤差。