亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

docker部署可執(zhí)行jar包的思路與完整步驟

 更新時(shí)間:2022年07月12日 15:27:14   作者:左直拳  
對(duì)于springboot項(xiàng)目運(yùn)行,直接是java -jar的方式運(yùn)行,如果想要放到docker中運(yùn)行,可以參考本文,下面這篇文章主要給大家介紹了關(guān)于docker部署可執(zhí)行jar包的思路與完整步驟,需要的朋友可以參考下

前言

我們構(gòu)建的是運(yùn)行bash文件命令的鏡像,而不是構(gòu)建jar包的鏡像。好處就是,jar包有更新,只需替換jar包或者bash文件,而無須重新構(gòu)建鏡像。

通常,用docker承載運(yùn)行java程序,是將jar包先構(gòu)建鏡像,然后創(chuàng)建docker容器運(yùn)行。如果jar包更新,就需要?jiǎng)h除原鏡像,重新來一遍,耗時(shí)耗力。有一個(gè)方案是,我們創(chuàng)建一個(gè)bash文件(linux的批處理文件),其內(nèi)容是運(yùn)行我們的jar包。然后創(chuàng)建運(yùn)行該bash文件的docker鏡像、docker容器。這樣的好處是很明顯的,jar包有更新,只替換jar包,甚至jar包改名了,也只是更改bash文件的內(nèi)容而已,而鏡像、容器,不會(huì)受到任何影響,無需作出任何改動(dòng)。

一、思路

1、將docker容器中的指定文件夾掛載到宿主機(jī)上,更新jar包只需上傳到宿主機(jī)指定路徑,方便更新

2、利用bash文件運(yùn)行jar包,并構(gòu)建該bash的鏡像,代替構(gòu)建直接運(yùn)行jar包的鏡像,利于鏡像與jar包解耦。
例如,app-1.0.0.jar 升級(jí)到 app-2.0.0.jar,只須更改bash文件的內(nèi)容,而無須構(gòu)建新的鏡像。

二、準(zhǔn)備工作

1、創(chuàng)建存放docker配置文件、jar包的文件夾

在宿主機(jī)上,創(chuàng)建文件夾:/home/admin/app,用于存放bash文件和jar包。然后在該文件夾下,創(chuàng)建bash文件和容器配置文件

2、創(chuàng)建bash文件

vi run.sh
java -jar /usr/data/app-1.0.0.jar

/usr/data是docker容器內(nèi)的路徑

我們不必真的到容器內(nèi)創(chuàng)建這個(gè)路徑

后面會(huì)將此路徑掛載到當(dāng)前文件夾:/home/admin/app

3、創(chuàng)建容器配置文件

vi Dockerfile
FROM java:8
EXPOSE 8081
ENTRYPOINT ["sh","/usr/data/run.sh"]

8081是我們這個(gè)jar包的對(duì)外端口

最后一句,有網(wǎng)上教程寫的是 CMD [“sh”,“-c”,“/usr/data/hello.sh”],但不知道為什么,我這樣寫的話,容器運(yùn)行后會(huì)提示沒有權(quán)限!

二、構(gòu)建鏡像

仍然在/home/admin/app下,構(gòu)建鏡像。注意最后一個(gè)“.”,表示 Dockerfile 文件在當(dāng)前目錄下。

docker build -t myapp:1.0.0 .

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

docker run -d -it --name=myapp -p 8081:8081 -v /home/admin/app:/usr/data myapp:1.0.0

docker引擎重啟后自動(dòng)運(yùn)行(也可以理解為操作系統(tǒng)重啟后自動(dòng)運(yùn)行,如果docker是開機(jī)自動(dòng)運(yùn)行的話)

docker run --restart=always -d -it --name=myapp -p 8082:8081 -v /home/admin/app:/usr/data myapp:1.0.0

-v,將容器內(nèi)的/usr/data掛載到宿主機(jī)的/home/admin/app。以后jar包有更新,丟到宿主機(jī)的/home/admin/app,然后重啟容器即可。

-d: 后臺(tái)運(yùn)行容器,并返回容器ID;

-d, --detach=false Run container in background and print container ID

-i: 以交互模式運(yùn)行容器,通常與 -t 同時(shí)使用;

-i, --interactive=false Keep STDIN open even if not attached

-t: 為容器重新分配一個(gè)偽輸入終端,通常與 -i 同時(shí)使用;

-t, --tty=false Allocate a pseudo-TTY

四、刪除多余或失敗的容器、鏡像

以上步驟,可能存在波折,不小心就創(chuàng)建了許多并不稱心如意的容器和鏡像,占用了心水名稱和端口,必先刪之而后快。

1、觀察已經(jīng)有哪些容器

docker ps -a

加上 -a 參數(shù),可以列出沒有在運(yùn)行的容器。

2、刪除指定容器

docker rm $name 或者 容器ID

3、觀察已經(jīng)有哪些鏡像

docker images

4、刪除指定鏡像

docker rmi -f $name 或者 鏡像ID

要?jiǎng)h除鏡像,首先要?jiǎng)h除它派生的容器。

五、docker世界中的一些術(shù)語

我現(xiàn)在是這么理解的:

docker是一個(gè)程序,它不是容器,而是容器引擎。

我們的程序要用docker來跑,首先要?jiǎng)?chuàng)建一個(gè)開啟我們程序的鏡像。

docker利用這個(gè)鏡像,開啟并運(yùn)行容器。

容器是鏡像的實(shí)例,同一個(gè)鏡像可以派生出多個(gè)實(shí)例。

六、補(bǔ)充

如上所述,我的思路是將容器內(nèi)的文件夾掛載到宿主機(jī)的文件夾上,方便以后更新維護(hù)。如果沒有這層考慮,其實(shí)也可以將jar包直接塞到容器里運(yùn)行,不過一旦jar包有更新,需要重新構(gòu)建鏡像和容器。

直接塞到容器里運(yùn)行的方法是Dockerfile內(nèi)容稍有點(diǎn)不同:

FROM java:8
MAINTAINER chenqu
ADD demo-0.0.1-SNAPSHOT.jar demo.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","demo.jar"]

總結(jié)

到此這篇關(guān)于docker部署可執(zhí)行jar包的思路與完整步驟的文章就介紹到這了,更多相關(guān)docker部署可執(zhí)行jar包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker中鏡像構(gòu)建文件Dockerfile與相關(guān)命令的詳細(xì)介紹

    Docker中鏡像構(gòu)建文件Dockerfile與相關(guān)命令的詳細(xì)介紹

    這篇文章主要介紹了Docker中鏡像構(gòu)建文件Dockerfile與相關(guān)命令的相關(guān)資料,文中介紹的很詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,有需要的朋友們下面來一起看看吧。
    2017-02-02
  • Docker?創(chuàng)建centos容器集群并實(shí)現(xiàn)遠(yuǎn)程登錄功能

    Docker?創(chuàng)建centos容器集群并實(shí)現(xiàn)遠(yuǎn)程登錄功能

    這篇文章主要介紹了Docker?創(chuàng)建centos容器集群并實(shí)現(xiàn)遠(yuǎn)程登錄,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • dockerfile echo指定文件多行文本的方法實(shí)現(xiàn)

    dockerfile echo指定文件多行文本的方法實(shí)現(xiàn)

    這篇文章主要介紹了dockerfile echo指定文件多行文本的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Docker可視化工具Portainer的具體使用

    Docker可視化工具Portainer的具體使用

    Portainer是Docker的可視化工具,可提供一個(gè)交互界面顯示Docker的詳細(xì)信息供用戶操作,本文主要介紹了Docker可視化工具Portainer的具體使用,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • Docker容器數(shù)據(jù)卷介紹及操作示例

    Docker容器數(shù)據(jù)卷介紹及操作示例

    這篇文章主要為大家介紹了Docker容器數(shù)據(jù)卷介紹及操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • Docker容器訪問宿主機(jī)網(wǎng)絡(luò)的方法

    Docker容器訪問宿主機(jī)網(wǎng)絡(luò)的方法

    這篇文章主要介紹了Docker容器訪問宿主機(jī)網(wǎng)絡(luò)的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-10-10
  • 基于Docker的幾種常用CentOS7鏡像小結(jié)

    基于Docker的幾種常用CentOS7鏡像小結(jié)

    本文主要介紹了使用 Docker 來制作CentOS 環(huán)境的鏡像,并上傳到阿里云的 Docker 鏡像倉庫,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-11-11
  • 淺談關(guān)于Docker容器互聯(lián)的初步實(shí)踐

    淺談關(guān)于Docker容器互聯(lián)的初步實(shí)踐

    這篇文章主要介紹了淺談關(guān)于Docker容器互聯(lián)的初步實(shí)踐,本文介紹了使用網(wǎng)橋(bridge)來對(duì)容器進(jìn)行互聯(lián),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-10-10
  • Docker tomcat的設(shè)置內(nèi)存大小配置方式

    Docker tomcat的設(shè)置內(nèi)存大小配置方式

    這篇文章主要介紹了Docker tomcat的設(shè)置內(nèi)存大小配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 關(guān)于Docker 刪除dead狀態(tài)的容器問題及解決方案

    關(guān)于Docker 刪除dead狀態(tài)的容器問題及解決方案

    這篇文章主要介紹了Docker 刪除dead狀態(tài)的容器,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05

最新評(píng)論