亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker如何部署SpringBoot應用

發布時間:2022-03-03 15:11:31 來源:億速云 閱讀:222 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“Docker如何部署SpringBoot應用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Docker如何部署SpringBoot應用”這篇文章吧。

    前言

    部署項目時可能會需要依賴于node.js、Redis、RabbitMQ、MySQL等,這些服務部署時所需要的函數庫、依賴項各不相同,甚至會有沖突。給部署帶來了極大的困難。而Docker確巧妙的解決了這些問題,Docker為了解決依賴的兼容問題的,采用了兩個手段:

    1. 將應用的Libs(函數庫)、Deps(依賴)、配置與應用一起打包

    2. 將每個應用放到一個隔離容器去運行,避免互相干擾

    Docker如何部署SpringBoot應用

    本文將講解如何使用Docker來部署我們平時用SpringBoot開發的項目:

    Docker如何部署SpringBoot應用

    Dockerfile

    什么是 Dockerfile?

    Dockerfile 是一個用來構建鏡像的文本文件,文本內容包含了一條條構建鏡像所需的指令和說明。

    Docker如何部署SpringBoot應用

    Dockerfile語法

    構建自定義的鏡像時,并不需要一個個文件去拷貝,打包。

    我們只需要告訴Docker,我們的鏡像的組成,需要哪些BaseImage、需要拷貝什么文件、需要安裝什么依賴、啟動腳本是什么,將來Docker會幫助我們構建鏡像。

    而描述上述信息的文件就是Dockerfile文件。

    Dockerfile就是一個文本文件,其中包含一個個的指令(Instruction),用指令來說明要執行什么操作來構建鏡像。每一個指令都會形成一層Layer。

    Docker如何部署SpringBoot應用

    打包SpringBoot項目

    準備項目:

    項目端口

    server.port=8080

    在templates文件夾下新建index.html

    <!DOCTYPE html>
    <html lang="en" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>Docker部署SpringBoot應用</title>
    </head>
    <body>
    <h2>Docker部署SpringBoot應用</h2>
    <img src="/static/img/2.jpg" alt="" width="100%">
    </body>
    </html>

    定義主頁Controller,跳轉到index

    @Controller
    public class indexController {
    
        @RequestMapping("/")
        public String index(){
            return "index";
        }
    }

    在本地預覽效果:

    Docker如何部署SpringBoot應用

    在本地將SpringBoot應用打包成jar

    準備maven-compiler-plugin插件

    <build>
    	<!--編譯打包后的文件包名-->
    	<finalName>app</finalName>
    	<plugins>
    		<plugin>
    			<!--GAV坐標(G組織id,A項目id,V版本號)-->
    			<groupId>org.apache.maven.plugins</groupId>
    			<artifactId>maven-compiler-plugin</artifactId>
    			<version>3.8.1</version>
    			<!--配置:
    		    一般而言,target與source是保持一致的,但是,有時候為了讓程序能在其
    		    他版本的jdk中運行(對于低版本目標jdk,源代碼中不能使用低版本jdk中不
    		    支持的語法),會存在target不同于source的情況-->
    			<configuration>
    				<!--源代碼使用的JDK版本-->
    				<source>1.8</source>
    				<!-- 需要生成的目標class文件的編譯版本 -->
    				<target>1.8</target>
    				<!-- 字符集編碼,防止中文亂碼 -->
    				<encoding>UTF-8</encoding>
    			</configuration>
    		</plugin>
    	</plugins>
    </build>

    maven是個項目管理工具,如果不告訴它代碼要使用什么樣的jdk版本編譯,它就會用編譯插maven-compiler-plugin默認的jdk版本來處理,這樣就容易出現版本不匹配的問題,以至于可能導致編譯不通過的問題。例如代碼中要是使用上了Java8的新特性,比如函數式編程,但是maven在編譯的時候使用的是Java7,那這一段代碼是完全不可能編譯成.class文件的。為了避免出現這種情況,在構建maven項目的時候,我習慣性第一步就是配置maven-compiler-plugin插件,指定項目源碼的jdk 版本,編譯后的 jdk 版本,以及編碼方式。

    然后執行clean,最后執行package進行項目打包

    Docker如何部署SpringBoot應用

    出現BUILD SUCCESS說明打包成功了

    Docker如何部署SpringBoot應用

    打包成功后會出現target文件夾,目錄下就會有剛剛打包的jar包

    Docker如何部署SpringBoot應用

    準備jar包和Dockerfile

    復制jar到桌面或自定義位置,在本地創建編寫Dockerfile文件(注:名字必須為Dockerfile,去掉后綴名)

    Docker如何部署SpringBoot應用

    編寫Dockerfile

    Dockerfile指令

    FROM java:8-alpine
    COPY ./app.jar /tmp/app.jar
    ENTRYPOINT java -jar /tmp/app.jar

    Dockerfile說明

    FROM java:8-alpine:

    基于java8構建鏡像,默認構建java鏡像需要安裝配置環境變量,而java:8-alpine這個鏡像已經幫我們把前面的步驟都做完了

    COPY ./app.jar /tmp/app.jar

    復制jar包

    ENTRYPOINT java -jar /tmp/app.jar

    入口命令

    使用工具將jar和Dockerfile上傳到服務器

    上傳位置看個人,我存放的位置:/tmp/docker

    cd tmp
    mkdir docker

    選擇上傳文件

    Docker如何部署SpringBoot應用

    上傳到/tmp/docker目錄下

    Docker如何部署SpringBoot應用

    構建鏡像

    進入上傳文件的目錄:cd /tmp/docker,輸入ls查看文件

    Docker如何部署SpringBoot應用

    輸入命令構建鏡像

    docker build -t test:1.0 .

    格式:docker build -t 鏡像名稱:版本號 Dockerfile所在目錄路徑

    命令說明:

    build:docker的二級命令

    • 構建鏡像

    -t

    • -名稱: 一般的鏡像名稱格式:名稱:版本號(test:1.0)

    .

    • Dockerfile所在目錄,因為我們已經進入了Dockerfile所在的目錄,.代表當前目錄

    可以看到構建鏡像的時候會以我們編寫Dockerfile的三條命令分為3個步驟執行

    Docker如何部署SpringBoot應用

    查看鏡像

    查看Docker中的鏡像命令:

    docker images

    可以看到我們自定義鏡像test

    Docker如何部署SpringBoot應用

    創建并運行容器

    運行Docker鏡像命令:

    docker run --name springboot -p 8080:8080 -d test:1.0

    命令說明:

    docker run: docker二級命令

    • 創建并運行容器

    --name

    • 定義容器名稱,后面跟上容器名稱(springboot)

    -p端口映射

    • 左邊端口為Linux的端口 ,右邊為容器的端口號

    • 將linux端口映射在容器端口號上,這樣訪問linux端口等于訪問容器端口號

    -d

    • 后臺運行容器 ,否則退出之后容器就會停止運行

    test:1.0–>鏡像名稱

    • 選擇自定義鏡像test 的1.0版本來創建容器

    創建并運行容器成功!

    Docker如何部署SpringBoot應用

    查看正在運行的鏡像

    正在運行的鏡像命令

    docker ps

    Docker如何部署SpringBoot應用

    瀏覽器訪問服務器的8080端口

    Docker如何部署SpringBoot應用

    手機訪問:

    Docker如何部署SpringBoot應用

    查看日志

    查看容器日志命令

    docker logs -f springboot

    說明:

    查看容器日志但是不是實時更新,想要查看新的日志還需要重復運行

    docker logs + 容器名稱

    實時更新日志

    docker logs -f + 容器名稱

    Docker如何部署SpringBoot應用

    以上是“Docker如何部署SpringBoot應用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    梓潼县| 贵南县| 封开县| 元朗区| 宝鸡市| 萨迦县| 丰顺县| 吉林市| 曲水县| 太仆寺旗| 龙井市| 鄂尔多斯市| 南充市| 常山县| 洞口县| 宁蒗| 惠安县| 富宁县| 册亨县| 北票市| 邵阳县| 资源县| 云龙县| 凤翔县| 西充县| 那坡县| 溆浦县| 苍山县| 山东省| 太仆寺旗| 麟游县| 仪陇县| 潍坊市| 新乐市| 青冈县| 云龙县| 云和县| 中卫市| 安泽县| 营山县| 民丰县|