點(diǎn)擊上方“IT那活兒”公眾號(hào),關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了?。?!
使用Dockerfile文件.生成鏡像
先將SpringBoot項(xiàng)目打包成jar包(這里使用示例工程docker-demo),然后放到有docker環(huán)境的服務(wù)器中。
在jar包目錄下新建Dockerfile文件,內(nèi)容如下:
運(yùn)行命令【docker build -t docker-demo:0.0.1 .】構(gòu)建鏡像:
運(yùn)行【docker images】查看docker-demo:0.0.1鏡像構(gòu)建成功。
運(yùn)行【docker run -d -p 8081:8081 docker-demo:0.0.1】啟動(dòng)鏡像,并將docker容器的8081端口映射到宿主機(jī)的8081端口。
查看運(yùn)行的容器,可以看到docker-demo:0.0.1已正常運(yùn)行,且查看容器日志也正常啟動(dòng),訪問(wèn)程序功能可以正常響應(yīng)。
利用maven插件生成鏡像
maven是目前最流行的Java項(xiàng)目管理工具之一,我們也可以利用maven進(jìn)行docker鏡像打包。
Dockerfile Maven是Spotify公司提供的一款maven插件,用以輔助Docker項(xiàng)目進(jìn)行Dockerfile文件構(gòu)建、標(biāo)簽和發(fā)布。
首先,在pom.xml文件中引入該插件。此處定義了構(gòu)建的目標(biāo)、倉(cāng)庫(kù)名稱、鏡像名稱、鏡像版本等信息。
在項(xiàng)目源碼目錄內(nèi)新建Dockerfile文件,內(nèi)容如圖。
接下來(lái)通過(guò)maven命令【mvn clean package】構(gòu)建項(xiàng)目,前提本地需要有maven和docker環(huán)境,截取部分maven構(gòu)建日志如下:
[INFO] --- dockerfile-maven-plugin:1.4.13:build (default) @ docker-demo ---
[INFO] dockerfile: null
[INFO] contextDirectory: /root/docker-demo
[INFO] Building Docker context /root/docker-demo
[INFO] Path(dockerfile): null
[INFO] Path(contextDirectory): /root/docker-demo
[INFO]
[INFO] Image will be built as shsnc/docker-demo:0.0.2
[INFO]
[INFO] Step 1/7 : FROM java:8
[INFO] Trying to pull repository docker.io/library/java ...
[INFO] Pulling from docker.io/library/java
[INFO] Digest: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d
[INFO] Status: Image is up to date for docker.io/java:8
[INFO] ---> d23bdf5b1b1b
[INFO] Step 2/7 : MAINTAINER suntt
[INFO] ---> Using cache
[INFO] ---> 5dc4a92a74f1
[INFO] Step 3/7 : WORKDIR /app/docker-demo
[INFO] ---> Using cache
[INFO] ---> fd21efce4a6e
[INFO] Step 4/7 : ARG JAR_FILE
[INFO] ---> Running in d9e1be8b3266
[INFO] ---> e54019a81490
[INFO] Removing intermediate container d9e1be8b3266
[INFO] Step 5/7 : ADD target/docker-demo /app/docker-demo
[INFO] ---> 579ce6cfedd4
[INFO] Removing intermediate container 4c4d75bc4519
[INFO] Step 6/7 : EXPOSE 8081
[INFO] ---> Running in 8adc60ec81b4
[INFO] ---> 50ff3b856ce0
[INFO] Removing intermediate container 8adc60ec81b4
[INFO] Step 7/7 : ENTRYPOINT java -jar /app/docker-demo/docker-demo.jar
[INFO] ---> Running in 855ffffd626ec9
[INFO] ---> c726d26352c1
[INFO] Removing intermediate container 855ffffd626ec9
[INFO] Successfully built c726d26352c1
[INFO]
[INFO] Detected build of image with id c726d26352c1
[INFO] Building jar: /root/docker-demo/target/docker-demo-docker-info.jar
[INFO] Successfully built shsnc/docker-demo:0.0.2
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 40.518 s
[INFO] Finished at: 2022-07-20T10:47:52+08:00
[INFO] ------------------------------------------------------------------------
查看docker鏡像,可以看到shsnc/docker-demo:0.0.2鏡像構(gòu)建成功。
啟動(dòng)鏡像,由于方式一占用了宿主機(jī)8081端口,此處將容器內(nèi)8081端口映射至宿主機(jī)8082端口。
查看運(yùn)行中的容器,可看到方式一和方式二構(gòu)建的鏡像都已成功運(yùn)行,后續(xù)訪問(wèn)方式和普通Java工程沒(méi)有區(qū)別,通過(guò)maven方式構(gòu)建鏡像成功。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/129329.html
摘要:文件服務(wù)器項(xiàng)目為文章共享社區(qū),少不了的就是一個(gè)存儲(chǔ)文章的文件服務(wù)器,包括存儲(chǔ)一些圖片之類的靜態(tài)資源。例如數(shù)據(jù)庫(kù)的數(shù)據(jù)文件的配置文件和文件服務(wù)器目錄。 前言 這是一次完整的項(xiàng)目實(shí)踐,Angular頁(yè)面+Springboot接口+MySQL都通過(guò)Dockerfile打包成docker鏡像,通過(guò)docker-compose做統(tǒng)一編排。目的是實(shí)現(xiàn)整個(gè)項(xiàng)目產(chǎn)品的輕量級(jí)和靈活性,在將各個(gè)模塊的鏡像...
摘要:所以就嘗試在環(huán)境下利用阿里云倉(cāng)庫(kù)完成部署。從阿里云中拉取鏡像啟動(dòng)命名空間倉(cāng)庫(kù)名稱容器鏡像鏡像版本號(hào)這樣就能將本地的項(xiàng)目打包成容器在阿里云上發(fā)布了。 網(wǎng)上查了下大部分boot項(xiàng)目部署都是在linux和docker hub環(huán)境下完成的,由于本人開(kāi)發(fā)環(huán)境在windows下面,并且docker容器也是使用的docker tools,而且也沒(méi)有做docker hub的加速。所以就嘗試在windo...
摘要:市長(zhǎng)信箱郵件查詢服務(wù)將應(yīng)用部署到在上一章我完成了將部署到的工作和都具有能快速啟動(dòng)的特性因此是一對(duì)用來(lái)部署微服務(wù)的黃金搭檔在計(jì)劃中基于的應(yīng)用也將部署到之上那我們就開(kāi)始行動(dòng)吧將部署到上需要執(zhí)行以下步驟保證打包后的可執(zhí)行能正常啟動(dòng)在應(yīng)用中編寫鏡像 市長(zhǎng)信箱郵件查詢服務(wù): 將SpringBoot應(yīng)用部署到Docker 在上一章, 我完成了將ES部署到Docker的工作. SpringBoot和...
摘要:項(xiàng)目上傳將項(xiàng)目上傳到華為云服務(wù)器,沒(méi)啥好說(shuō)的。環(huán)境搭建建議在環(huán)境下安裝,環(huán)境搭建比較復(fù)雜且容易出錯(cuò),使用來(lái)安裝環(huán)境很方便。使用部署項(xiàng)目將項(xiàng)目復(fù)制到服務(wù)器中,進(jìn)入項(xiàng)目路徑下進(jìn)行打包測(cè)試。 項(xiàng)目搭建 Spring Boot 項(xiàng)目代碼 @RestController public class SpringBootDockerApplication { public static vo...
摘要:它是目前最流行的容器解決方案。創(chuàng)建文件在中加入以下信息注意必須和包在同一路徑下基礎(chǔ)鏡像必要,代表你的項(xiàng)目將構(gòu)建在這個(gè)基礎(chǔ)上面允許指定端口轉(zhuǎn)發(fā)創(chuàng)建一個(gè)可以從本地主機(jī)或其他容器掛載的掛載點(diǎn),一般用來(lái)存放數(shù)據(jù)庫(kù)和需要保持的數(shù)據(jù)等。 1.簡(jiǎn)介 建議閱讀本文最好對(duì)Dokcer有一些了解 首先我們先了解一下Docker是什么 Docker 屬于 Linux 容器的一種封裝,提供簡(jiǎn)單易用的容器使用接...
摘要:應(yīng)用化極簡(jiǎn)教程陳光劍基于的企業(yè)級(jí)應(yīng)用開(kāi)發(fā)最佳實(shí)踐前面的章節(jié)中,我們都是在環(huán)境中開(kāi)發(fā)運(yùn)行測(cè)試應(yīng)用程序。關(guān)鍵字是分布式應(yīng)用微服務(wù)容器虛擬化。通常,在企業(yè)項(xiàng)目實(shí)踐中,會(huì)實(shí)現(xiàn)一套應(yīng)用部署發(fā)布的自動(dòng)化運(yùn)維平臺(tái)工具。 Spring Boot 應(yīng)用 Docker 化 《Spring Boot 2.0極簡(jiǎn)教程》(陳光劍)—— 基于 Gradle + Kotlin的企業(yè)級(jí)應(yīng)用開(kāi)發(fā)最佳實(shí)踐 前面的章節(jié)中,...
閱讀 1459·2023-01-11 13:20
閱讀 1815·2023-01-11 13:20
閱讀 1267·2023-01-11 13:20
閱讀 2007·2023-01-11 13:20
閱讀 4227·2023-01-11 13:20
閱讀 2885·2023-01-11 13:20
閱讀 1489·2023-01-11 13:20
閱讀 3814·2023-01-11 13:20