使用docker部署springboot項目小白教程

一,創建springboot項目

大家隨意創建一個 springboot 項目就行了,這裏給大家展示一個半成品,稍後可以去gitee上下載源碼。自己創建的話勾選 web 這個依賴即可。然後在本地測試一下自己寫的接口,如果沒問題,就可以發佈了

二,在對自己的項目進行打包

1,找到右下角的Maven Projects,進行如下步驟
在這裏插入圖片描述

2,說說這裏面打包項目的坑,可能會遇到如下錯誤

Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0...

解決方案:
修改maven-resources-plugin的版本,如下。在進行以上步驟,代碼就能進行打包了

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
            <!--在這裏修改版本-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.4.3</version>
            </plugin>
        </plugins>
    </build>

3,最後控制檯出現如下,則打包完成
在這裏插入圖片描述,4,也可以在這個target目錄下發現jar包已經存在了
在這裏插入圖片描述

三,測試jar包

1,通過如下找到jar包的位置
在這裏插入圖片描述2,打開後,文件夾中cmd打開命令行提示符
在這裏插入圖片描述
3,輸入java -jar jar包名稱,可以發現本地也能跑,說明jar包沒問題,那就放心的放到服務器上了
在這裏插入圖片描述



四,idea安裝及使用dcoker

1,找到設置,下載dcoker插件即可
2,安裝成功的話,新建Dockerfile文件,可以發現出現高亮
在這裏插入圖片描述
3,編寫Dockerfile文件


#版本爲java8
FROM java:8
#將所有jar包複製
COPY *.jar /app.jar
#服務端口號
CMD ["--server.port=8080"]
#向外面暴露的端口
EXPOSE 8080
#容器啓動的時候運行的命令
ENTRYPOINT ["java","-jar","/app.jar"]

4,使用xftp將Dockerfile文件 和生成 jar 的包傳輸到linux下,我這邊用的是阿里雲服務器
5,在服務器下的 /home 目路下新建一個 /idea 目錄,將傳輸的文件移動到該目錄下即可
在這裏插入圖片描述
6,創建一個容器,最後面是有一個點的


docker build -it zhenghuisheng .

在這裏插入圖片描述
7,在構建成功之後,可以發現這個 Dockerfile 的文件也執行了
在這裏插入圖片描述
8,查看構建的鏡像,已經在裏面了


docker images

在這裏插入圖片描述

五,部署項目

1,運行構建的鏡像

docker run -d -p 8080:8080 --name springboot_web zhenghuisheng

解釋一下

-d :以後臺方式交互運行
-p :暴露端口號第一個8080是暴露linux 的端口號,這樣外部才能連接linux
			 第二個端口號暴露的是容器的端口號,這樣linux才能連接容器
			 這樣外部就能通過服務器訪問容器了
--name : 給容器命名,可以通過docker ps下查詢,名字隨意
zhenghuisheng : 上面構建鏡像的名稱

2,查看當前容器是否在運行,

docker ps

可以發現已經在運行了
在這裏插入圖片描述
3,測試能否連通,上一步可以發現一個ports 端口號,於是curl測試一下
在這裏插入圖片描述
4,curl 測試



curl 0.0.0.0:8080

出現一下界面,測試成功
在這裏插入圖片描述
5,瀏覽器訪問一下,輸入服務器外網ip + linux暴露的端口號8080

在這裏插入圖片描述
6,如果沒有出現以上界面,那麼就有以下可能
沒有關閉防火牆,沒有在阿里雲服務器開放端口
具體詳情可以參照另一篇博客:https://blog.csdn.net/zhenghuishengq/article/details/112868488
裏面有許多踩坑以及脫坑的事例
7,可以發現已經到了我項目的登錄界面了。本來想發這個項目到gitee的,想想還是算了




六,總結

由於我這個是在web上進行了部署,很多人肯定是想問爲什麼不需要部署 tomcat 環境的,當時我也有過此疑問,爲什麼不需要呢?後來纔想明白,我們用的是springboot項目,裏面自帶了 tomcat 。
因此到這裏,我們的項目就算是部署成功了,歡迎留言!

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