docker啟動(dòng)Java程序的方法步驟
創(chuàng)建一個(gè)簡(jiǎn)單的Spring boot web項(xiàng)目
idea工具創(chuàng)建Spring boot web項(xiàng)目,因?yàn)槭菧y(cè)試,一直next就行。




寫一個(gè)test API,用來(lái)訪問(wèn),服務(wù)端口號(hào)可以不用改,我本地改成8701。

程序啟動(dòng),發(fā)現(xiàn)程序不是默認(rèn)的8080端口了,訪問(wèn):http://localhost:8701/v1/hello


以上一個(gè)簡(jiǎn)單web項(xiàng)目建好了,下面我們通過(guò)docker來(lái)運(yùn)行這個(gè)demo項(xiàng)目
第一步,你需要安裝docker(這里不做詳細(xì)步驟)。
第二步,我們需要一個(gè)有java環(huán)境docker鏡像。我是從網(wǎng)易云鏡像中心下載了一個(gè),地址:https://c.163yun.com/hub#/library/repository/info?repoId=65430,大家也可以從阿里云等找到相應(yīng)的具有java環(huán)境的鏡像來(lái)制作也可以。
獲取鏡像,將鏡像拉到本地
docker pull hub.c.163.com/housan993/centos7_jdk8:latest
第三步,我們現(xiàn)將demo項(xiàng)目打個(gè)jar包,mvn install,為了方便我生成的jar直接從target中拿到項(xiàng)目根目錄下了。

第四步,我們?cè)陧?xiàng)目下編寫一個(gè)Dockerfile文件,用來(lái)制作demo項(xiàng)目的鏡像。
dockerfile文件里的命令大家執(zhí)行百度
dockerfile文件內(nèi)容: FROM hub.c.163.com/housan993/centos7_jdk8:latest COPY demo-0.0.1-SNAPSHOT.jar / CMD java -jar demo-0.0.1-SNAPSHOT.jar
編寫好dockerfile文件后,我們通過(guò)docker命令來(lái)build一個(gè)鏡像。docker命令會(huì)自動(dòng)找當(dāng)前目錄下的Dockerfile文件(默認(rèn)的文件名要為Dockerfile),其次要指定目錄路徑 “.”表示當(dāng)前目前
docker build -t demo-img .
看到如下日志,鏡像就制作成功了。

第五步,我們根據(jù)制作的鏡像來(lái)啟動(dòng)我們程序的容器,并將端口(8701)映射到把本機(jī)的8701出來(lái)。
docker run -d -p 8701:8701 demo-image
run完之后我們會(huì)得到一長(zhǎng)串字符,這就是容器的CONTAINER ID。我們docker ps一下看看

我們?cè)倏纯慈萜鲉?dòng)的日志,看看我們的java程序有沒(méi)有運(yùn)行起來(lái)
docker logs [CONTAINER ID]

由容器的日志,我們發(fā)現(xiàn)和我們本地啟動(dòng)一個(gè)Java程序的日志一模一樣,那么我通過(guò)映射出來(lái)的端口,再訪問(wèn)下demo程序看看,行不行。

我們將demo容器停下,看我們還能訪問(wèn)不?
stop容器命令:docker stop [CONTAINER ID]
訪問(wèn)不了了。。。

我們?cè)侔盐覀兊膁emo容器啟動(dòng)
docker start [CONTAINER ID]
又可以訪問(wèn)了。至此,我們通過(guò)docker 跑java程序的簡(jiǎn)單使用已經(jīng)完成。

展望上面只是docker 跑java程序的簡(jiǎn)單使用。我們后續(xù)有興趣的,可以自己將打包,build等命令進(jìn)行shell腳本的分裝,對(duì)容器版本進(jìn)行自動(dòng)生成,參數(shù)變量的動(dòng)態(tài)取值都是可以的。只能說(shuō)容器話非常好玩,將來(lái)自己項(xiàng)目自動(dòng)化部署也是非常方便的,后面將介紹k8s容器編排工具,更為有趣。
到此這篇關(guān)于docker啟動(dòng)Java程序的方法步驟的文章就介紹到這了,更多相關(guān)docker啟動(dòng)Java程序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IDEA集成Docker實(shí)現(xiàn)打包的方法
本文主要介紹了IDEA集成Docker實(shí)現(xiàn)打包的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
查看docker是否處于啟動(dòng)狀態(tài)的方法詳解
Docker 是一個(gè)開(kāi)源的應(yīng)用容器引擎,讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,本文主要給大家介紹了查看docker是否處于啟動(dòng)狀態(tài)的方法,需要的朋友可以參考下2024-06-06
Docker中控制服務(wù)啟動(dòng)順序的操作方法
Docker是一種開(kāi)源的應(yīng)用容器引擎,允許開(kāi)發(fā)者將應(yīng)用及其依賴打包進(jìn)容器,實(shí)現(xiàn)快速、一致的部署,Docker三劍客compose、machine和swarm提供了不同層面的服務(wù)管理和編排,使得在不同環(huán)境中部署應(yīng)用變得簡(jiǎn)單高效2024-10-10
docker安裝RabbitMQ及安裝延遲插件的詳細(xì)過(guò)程
MQ(message queue)字面意思上來(lái)說(shuō)消息隊(duì)列,是一種跨進(jìn)程的通信機(jī)制,用于上下游傳遞消息,本文給大家詳細(xì)介紹docker安裝RabbitMQ及安裝延遲插件的過(guò)程,感興趣的朋友一起看看吧2022-06-06

