最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker部署SpringBoot應(yīng)用的實(shí)現(xiàn)步驟

 更新時(shí)間:2021年11月22日 08:26:44   作者:花傷情猶在  
本文主要介紹了Docker部署SpringBoot應(yīng)用,Docker可以巧妙的解決函數(shù)庫(kù)、依賴(lài)沖突問(wèn)題,具有一定的參考價(jià)值,感興趣的可以了解一下

前言

部署項(xiàng)目時(shí)可能會(huì)需要依賴(lài)于node.js、Redis、RabbitMQ、MySQL等,這些服務(wù)部署時(shí)所需要的函數(shù)庫(kù)、依賴(lài)項(xiàng)各不相同,甚至?xí)袥_突。給部署帶來(lái)了極大的困難。而Docker確巧妙的解決了這些問(wèn)題,Docker為了解決依賴(lài)的兼容問(wèn)題的,采用了兩個(gè)手段:

  1. 將應(yīng)用的Libs(函數(shù)庫(kù))、Deps(依賴(lài))、配置與應(yīng)用一起打包
  2. 將每個(gè)應(yīng)用放到一個(gè)隔離容器去運(yùn)行,避免互相干擾

在這里插入圖片描述

本文將講解如何使用Docker來(lái)部署我們平時(shí)用SpringBoot開(kāi)發(fā)的項(xiàng)目:

在這里插入圖片描述

Dockerfile

什么是 Dockerfile?

Dockerfile 是一個(gè)用來(lái)構(gòu)建鏡像的文本文件,文本內(nèi)容包含了一條條構(gòu)建鏡像所需的指令和說(shuō)明。

在這里插入圖片描述

Dockerfile語(yǔ)法

構(gòu)建自定義的鏡像時(shí),并不需要一個(gè)個(gè)文件去拷貝,打包。

我們只需要告訴Docker,我們的鏡像的組成,需要哪些BaseImage、需要拷貝什么文件、需要安裝什么依賴(lài)、啟動(dòng)腳本是什么,將來(lái)Docker會(huì)幫助我們構(gòu)建鏡像。

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

Dockerfile就是一個(gè)文本文件,其中包含一個(gè)個(gè)的指令(Instruction),用指令來(lái)說(shuō)明要執(zhí)行什么操作來(lái)構(gòu)建鏡像。每一個(gè)指令都會(huì)形成一層Layer。

在這里插入圖片描述

打包SpringBoot項(xiàng)目

準(zhǔn)備項(xiàng)目:

項(xiàng)目端口

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應(yīng)用</title>
</head>
<body>
<h1>Docker部署SpringBoot應(yīng)用</h1>
<img src="/static/img/2.jpg" alt="" width="100%">
</body>
</html>

定義主頁(yè)Controller,跳轉(zhuǎn)到index

@Controller
public class indexController {

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

在本地預(yù)覽效果:

在這里插入圖片描述

在本地將SpringBoot應(yīng)用打包成jar

準(zhǔn)備maven-compiler-plugin插件

<build>
	<!--編譯打包后的文件包名-->
	<finalName>app</finalName>
	<plugins>
		<plugin>
			<!--GAV坐標(biāo)(G組織id,A項(xiàng)目id,V版本號(hào))-->
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>3.8.1</version>
			<!--配置:
		    一般而言,target與source是保持一致的,但是,有時(shí)候?yàn)榱俗尦绦蚰茉谄?
		    他版本的jdk中運(yùn)行(對(duì)于低版本目標(biāo)jdk,源代碼中不能使用低版本jdk中不
		    支持的語(yǔ)法),會(huì)存在target不同于source的情況-->
			<configuration>
				<!--源代碼使用的JDK版本-->
				<source>1.8</source>
				<!-- 需要生成的目標(biāo)class文件的編譯版本 -->
				<target>1.8</target>
				<!-- 字符集編碼,防止中文亂碼 -->
				<encoding>UTF-8</encoding>
			</configuration>
		</plugin>
	</plugins>
</build>

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

然后執(zhí)行clean,最后執(zhí)行package進(jìn)行項(xiàng)目打包

在這里插入圖片描述

出現(xiàn)BUILD SUCCESS說(shuō)明打包成功了

在這里插入圖片描述

打包成功后會(huì)出現(xiàn)target文件夾,目錄下就會(huì)有剛剛打包的jar包

在這里插入圖片描述

準(zhǔn)備jar包和Dockerfile

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

在這里插入圖片描述

編寫(xiě)Dockerfile

Dockerfile指令

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

Dockerfile說(shuō)明

FROM java:8-alpine:

基于java8構(gòu)建鏡像,默認(rèn)構(gòu)建java鏡像需要安裝配置環(huán)境變量,而java:8-alpine這個(gè)鏡像已經(jīng)幫我們把前面的步驟都做完了

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

復(fù)制jar包

ENTRYPOINT java -jar /tmp/app.jar

入口命令

使用工具將jar和Dockerfile上傳到服務(wù)器

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

cd tmp
mkdir docker

選擇上傳文件

在這里插入圖片描述

上傳到/tmp/docker目錄下

在這里插入圖片描述

構(gòu)建鏡像

進(jìn)入上傳文件的目錄:cd /tmp/docker,輸入ls查看文件

在這里插入圖片描述

輸入命令構(gòu)建鏡像

docker build -t test:1.0 .

格式:docker build -t 鏡像名稱(chēng):版本號(hào) Dockerfile所在目錄路徑

命令說(shuō)明:

build:docker的二級(jí)命令

  • 構(gòu)建鏡像

-t

  • -名稱(chēng): 一般的鏡像名稱(chēng)格式:名稱(chēng):版本號(hào)(test:1.0)

.

  • Dockerfile所在目錄,因?yàn)槲覀円呀?jīng)進(jìn)入了Dockerfile所在的目錄,.代表當(dāng)前目錄

可以看到構(gòu)建鏡像的時(shí)候會(huì)以我們編寫(xiě)Dockerfile的三條命令分為3個(gè)步驟執(zhí)行

在這里插入圖片描述

查看鏡像

查看Docker中的鏡像命令:

docker images

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

在這里插入圖片描述

創(chuàng)建并運(yùn)行容器

運(yùn)行Docker鏡像命令:

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

命令說(shuō)明:

docker run: docker二級(jí)命令

  • 創(chuàng)建并運(yùn)行容器

--name

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

-p端口映射

  • 左邊端口為L(zhǎng)inux的端口 ,右邊為容器的端口號(hào)
  • 將linux端口映射在容器端口號(hào)上,這樣訪問(wèn)linux端口等于訪問(wèn)容器端口號(hào)

-d

  • 后臺(tái)運(yùn)行容器 ,否則退出之后容器就會(huì)停止運(yùn)行

test:1.0–>鏡像名稱(chēng)

  • 選擇自定義鏡像test 的1.0版本來(lái)創(chuàng)建容器

創(chuàng)建并運(yùn)行容器成功!

在這里插入圖片描述

查看正在運(yùn)行的鏡像

正在運(yùn)行的鏡像命令

docker ps

在這里插入圖片描述

瀏覽器訪問(wèn)服務(wù)器的8080端口

在這里插入圖片描述

手機(jī)訪問(wèn):

在這里插入圖片描述

查看日志

查看容器日志命令

docker logs -f springboot

說(shuō)明:

查看容器日志但是不是實(shí)時(shí)更新,想要查看新的日志還需要重復(fù)運(yùn)行

docker logs + 容器名稱(chēng)

實(shí)時(shí)更新日志

docker logs -f + 容器名稱(chēng)

在這里插入圖片描述

Docker部署SpringBoot應(yīng)用教程結(jié)束!

到此這篇關(guān)于Docker部署SpringBoot應(yīng)用的文章就介紹到這了,更多相關(guān)Docker部署SpringBoot應(yīng)用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker配置容器位置與小技巧總結(jié)

    Docker配置容器位置與小技巧總結(jié)

    這篇文章主要給大家介紹了關(guān)于Docker配置容器位置與小技巧的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Docker具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Docker?Compose?Start命令優(yōu)雅重啟容器服務(wù)詳解

    Docker?Compose?Start命令優(yōu)雅重啟容器服務(wù)詳解

    Docker Compose Start 是用于重啟已停止容器的輕量級(jí)命令,優(yōu)勢(shì)在于快速恢復(fù)服務(wù)、保持容器狀態(tài)及資源節(jié)約,這篇文章主要介紹了Docker?Compose?Start命令優(yōu)雅重啟容器服務(wù)的相關(guān)資料,需要的朋友可以參考下
    2025-08-08
  • 局域網(wǎng)內(nèi)部署 Docker Registry(推薦)

    局域網(wǎng)內(nèi)部署 Docker Registry(推薦)

    本文將從創(chuàng)建單機(jī)的 Docker Registry 開(kāi)始,逐步完成局域網(wǎng)內(nèi)可用的 Docker Registry 的創(chuàng)建,并重點(diǎn)解釋如何使用 IP 地址訪問(wèn) Registry 的方法
    2017-05-05
  • Docker離線(xiàn)部署geoserver的思路詳解

    Docker離線(xiàn)部署geoserver的思路詳解

    這篇文章主要介紹了Docker離線(xiàn)部署geoserver的思路詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • Docker如何更換鏡像源提高拉取速度

    Docker如何更換鏡像源提高拉取速度

    在國(guó)內(nèi),由于網(wǎng)絡(luò)政策和限制,直接訪問(wèn)DockerHub速度很慢,尤其是在拉取大型鏡像時(shí),為了解決這個(gè)問(wèn)題,常用的方法就是更換鏡像源,本文將詳細(xì)介紹如何更換Docker鏡像源,并提供當(dāng)前可用的鏡像源,感興趣的朋友一起看看吧
    2025-04-04
  • 使用Docker安裝phabricator的配置和使用方法

    使用Docker安裝phabricator的配置和使用方法

    今天小編就為大家分享一篇關(guān)于使用Docker安裝phabricator的配置和使用方法的文章,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • 使用Docker的NFS-Ganesha鏡像搭建nfs服務(wù)器的詳細(xì)過(guò)程

    使用Docker的NFS-Ganesha鏡像搭建nfs服務(wù)器的詳細(xì)過(guò)程

    這篇文章主要介紹了使用Docker的NFS-Ganesha鏡像搭建nfs服務(wù)器,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Docke中安裝redis的方法

    Docke中安裝redis的方法

    這篇文章主要介紹了Docke中安裝redis的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • Mac為docker和kubectl添加自動(dòng)補(bǔ)全命令的方法

    Mac為docker和kubectl添加自動(dòng)補(bǔ)全命令的方法

    很多朋友不太明白如何為docker和kubectl添加自動(dòng)補(bǔ)全命令,本文通過(guò)一些示例給大家介紹kubectl基礎(chǔ)概念及語(yǔ)法知識(shí),需要的朋友參考下吧
    2021-06-06
  • Docker?安裝Redis?無(wú)法使用配置文件設(shè)置密碼問(wèn)題及解決方法

    Docker?安裝Redis?無(wú)法使用配置文件設(shè)置密碼問(wèn)題及解決方法

    最近開(kāi)發(fā)需要使用各種組件,如果都到開(kāi)發(fā)機(jī)上安裝,會(huì)占用電腦資源較多,所以使用docker容器來(lái)安裝這些組件,這篇文章主要介紹了Docker安裝Redis無(wú)法使用配置文件設(shè)置密碼問(wèn)題,需要的朋友可以參考下
    2023-08-08

最新評(píng)論

洛川县| 义乌市| 六安市| 广东省| 黄平县| 同德县| SHOW| 克什克腾旗| 黎平县| 墨脱县| 松潘县| 南江县| 宝丰县| 锡林郭勒盟| 太白县| 内丘县| 吉木萨尔县| 青河县| 曲松县| 博兴县| 东兴市| 江门市| 林口县| 伽师县| 孝昌县| 忻州市| 百色市| 株洲市| 阿合奇县| 萨迦县| 西丰县| 东至县| 贺兰县| 唐河县| 高台县| 白山市| 天等县| 郸城县| 武威市| 武乡县| 高密市|