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

如何在Docker中部署運(yùn)行jar

 更新時間:2023年11月27日 09:13:25   作者:justry_deng  
這篇文章主要介紹了如何在Docker中部署運(yùn)行jar問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

基本前提條件

1、系統(tǒng)已安裝Docker。

2、系統(tǒng)可上網(wǎng)。

第一大步

docker search justrydeng搜索Docker的JDK鏡像

注:這是本人自己組裝并上傳到Docker官方倉庫里的一個jdk8的鏡像。如果讀者不想用這個鏡像,那么也可以使

用其他的jdk鏡像。

第二大步

docker pull justrydeng/jdk8拉取(下載)鏡像

此時,就可以看到:本地有鏡像了:

第三大步

根據(jù)要運(yùn)行的.jar文件,使用Dockerfile + build生成對應(yīng)的新鏡像,并利用該鏡像生成容器

假設(shè):我們要運(yùn)行的jar包是jenkins-0.0.1-SNAPSHOT.jar。

第一小步:創(chuàng)建一個Dockerfile文件并編寫,如(這是編寫后的樣子):

FROM justrydeng/jdk8
MAINTAINER dengshuai<13548417409@163.com>
RUN mkdir /var/jarDir && mkdir /var/jarDir/jenkins-docker-test
CMD ["nohup","java","-jar","/var/jarDir/jenkins-docker-test/jenkins-0.0.1-SNAPSHOT.jar","&"]

提示:此CMD里為啟動jar包的指令,根據(jù)不同的需求,編寫對應(yīng)的啟動jar包指令即可。

說明一:RUN指令的作用是當(dāng)利用新的鏡像創(chuàng)建容器后,容器馬上再創(chuàng)建一個目錄,來放置后面會放進(jìn)去的jar文件,這么做的目的是為了歸類方便管理。

追注:實(shí)際上,此一步不是必要的,因?yàn)橐话愣?一個Docker容器就運(yùn)行一個jar包,所以也可以直接將jar包放置在/下也行。

說明二:CMD指令的作用是:當(dāng)docker start 啟動容器后(注意:是啟動,而不是創(chuàng)建),會馬上執(zhí)行該指令。

第二小步:使用docker build指令,生成新的鏡像;如這里:

docker build -t justrydeng/jar . -f jarDockerfile

說明一:因?yàn)槲覀儎?chuàng)建新的鏡像時,不需要什么外部的東西,所以我們指定其上下文“母體”時,最好指定一個空的文件夾或者指定一個幾乎不含內(nèi)容的文件夾。本人這里為了方便,指定的是當(dāng)前文件夾。

此時,可看見,已經(jīng)生成了新的鏡像:

第三小步:使用docker run指令,配置映射、生成容器,如:

docker run -p 8080:8080 --name jenkins-docker-test -d justrydeng/jar

說明一:-p 8080:8080作用是,將宿主機(jī)的端口8080(前面那個),與docker的端口8080(后面那個)映射。

說明二:docker ps 只能查看正在運(yùn)行著的容器,而docker ps -a可以查看所有的容器。

第四大步

使用docker cp將宿主機(jī)中的jar包,拷貝至容器中的對應(yīng)位置

如:

docker cp jenkins-0.0.1-SNAPSHOT.jar jenkins-docker-test:/var/jarDir/jenkins-docker-test

說明一:將jar包放進(jìn)容器中的對應(yīng)的位置(即:Dockerfile的CMD指令對應(yīng)的位置)。

說明二:只要容器存在(無論容器是否正在運(yùn)行),就能將東西放進(jìn)去。

第五大步

docker start啟動容器即可

如:

docker start jenkins-docker-test

第六大步

http://宿主機(jī)ip:映射后的宿主機(jī)端口訪問測試

提示,該jar包中的Controller方法有:

訪問:http://10.8.109.60:8080/jenkins/test?name=JustryDeng

由此可見:在Docker的容器中部署運(yùn)行jar包,成功!

拓展一

編寫一個通用的運(yùn)行jar包的鏡像(這里只給思路,不給具體示例)

> Dockerfile如:

FROM justrydeng/jdk8
MAINTAINER dengshuai<13548417409@163.com>
RUN mkdir /jarAppDir/
CMD ["nohup","java","-jar","/jarAppDir/app.jar","&"]

> 生成鏡像docker build -t justrydeng/common-run-jar . -f jarDockerfile

注: -f 可以指定Dockerfile文件的文件名。

> 在后面使用時,我們可以使用同一個鏡像來制作對應(yīng)不同端口(不同服務(wù))的容器

docker run -p 宿主機(jī)端口:要映射的容器端口 --name 容器名 -d justrydeng/common-run-jar

> 在更新jar包時,需要在把xxx.jar包復(fù)制進(jìn)容器時,統(tǒng)一重命名為app.jar

docker cp 宿主機(jī)jar包 容器名(或容器ID):/jarAppDir/app.jar

說明:此方式的優(yōu)勢在于:每次如果要更新jar包,只需要先將容器stop,然后直接替換容器里面的jar包,最后再將該容器start即可。無需每次都創(chuàng)建新的鏡像,創(chuàng)建新的容器。

拓展二

解決Docker部署微服務(wù)時,服務(wù)之間不能調(diào)用的問題(示例)

調(diào)用服務(wù)出錯時的Eureka:

如圖所示:

eureka找服務(wù)時,會根據(jù)服務(wù)名【efficiency-taskrelease-service】,找到對應(yīng)的要訪問的地址【6129d46c643e:2050】;一般的,如果我們在微服務(wù)中只配了:

的話,那么這個服務(wù)注冊到eureka中的就可能是【主機(jī)名:服務(wù)應(yīng)用名稱:服務(wù)端口號】。

如果主機(jī)名是localhost的話,那可能影響不大;

但是如果主機(jī)名是其他的什么的話(如:6129d46c643e),那么就可能造成java.net.UnknownHostException: 6129d46c643e異常,將微服務(wù)放在Docker容器中進(jìn)行服務(wù)注冊時可能會出問題,微服務(wù)會將Docker容器的主機(jī)名(而不是宿主機(jī)的主機(jī)名)注冊到eureka上,這時我們可以通過配置,來指定使用宿主機(jī)的ip,如:

注:此時,可以不需要指定server.port了,因?yàn)槲覀円呀?jīng)在eureka.instance.instance-id中指明了;但spring.application.name還是需要指明的。

配置完成后,再重啟服務(wù),再次查看eureka,可看見:

此時,微服務(wù)集成Docker時,各個服務(wù)不能調(diào)用的問題就得到了解決!

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • docker部署CASSANDRA全過程

    docker部署CASSANDRA全過程

    本文介紹了如何使用Docker安裝和運(yùn)行Apache Cassandra,包括創(chuàng)建數(shù)據(jù)表、加載數(shù)據(jù)、以及進(jìn)行交互式查詢的基本步驟
    2025-01-01
  • Docker實(shí)現(xiàn)安裝ELK(單節(jié)點(diǎn))

    Docker實(shí)現(xiàn)安裝ELK(單節(jié)點(diǎn))

    這篇文章主要介紹了Docker實(shí)現(xiàn)安裝ELK(單節(jié)點(diǎn)),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 使用Docker部署Spring Boot的實(shí)現(xiàn)方法

    使用Docker部署Spring Boot的實(shí)現(xiàn)方法

    這篇文章主要介紹了使用Docker部署Spring Boot的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Docker?鏡像導(dǎo)入導(dǎo)出過程介紹

    Docker?鏡像導(dǎo)入導(dǎo)出過程介紹

    這篇文章主要介紹了Docker?鏡像導(dǎo)入導(dǎo)出過程,文章圍繞主題展開詳細(xì)內(nèi)容,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-04-04
  • 如何使用Docker部署最新版JupyterHub

    如何使用Docker部署最新版JupyterHub

    本文介紹了如何使用Docker部署最新版JupyterHub,包括拉取鏡像、啟動容器、生成配置文件、安裝依賴、創(chuàng)建用戶、更改權(quán)限、更新配置文件以及訪問驗(yàn)證等步驟,感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • Docker基礎(chǔ)學(xué)習(xí)之?dāng)?shù)據(jù)管理

    Docker基礎(chǔ)學(xué)習(xí)之?dāng)?shù)據(jù)管理

    我們在使用Docker 的時候,會產(chǎn)生很多數(shù)據(jù),比如web服務(wù)器啊,數(shù)據(jù)庫之類的,有時我們還需要備份或復(fù)制這些數(shù)據(jù),這就需要涉及到Docker的數(shù)據(jù)管理了。這篇文章就給大家詳細(xì)的介紹Docker的數(shù)據(jù)管理,感興趣的朋友們可以參考借鑒,下面來一起看看吧。
    2016-10-10
  • docker安裝nacos并配置數(shù)據(jù)庫的全過程

    docker安裝nacos并配置數(shù)據(jù)庫的全過程

    這篇文章主要給大家介紹了關(guān)于docker安裝nacos并配置數(shù)據(jù)庫的相關(guān)資料, Nacos是SpringCloudAlibaba架構(gòu)中最重要的組件,Nacos 是一個更易于幫助構(gòu)建云原生應(yīng)用的動態(tài)服務(wù)發(fā)現(xiàn)、配置和服務(wù)管理平臺,文中介紹的非常信息,需要的朋友可以參考下
    2023-09-09
  • 基于Docker、Nginx和Jenkins實(shí)現(xiàn)前端自動化部署

    基于Docker、Nginx和Jenkins實(shí)現(xiàn)前端自動化部署

    本文主要介紹了搭建Docker+Nginx+Jenkins環(huán)境,用于實(shí)現(xiàn)前端自動化部署的流程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Docker安裝RabbitMQ并安裝延時隊(duì)列插件

    Docker安裝RabbitMQ并安裝延時隊(duì)列插件

    本文主要介紹了Docker安裝RabbitMQ并安裝延時隊(duì)列插件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • docker構(gòu)建鏡像需使用的命令小結(jié)

    docker構(gòu)建鏡像需使用的命令小結(jié)

    Docker 構(gòu)建鏡像的命令主要分為兩類:Dockerfile 指令與 docker build 命令,這篇文章主要介紹了docker構(gòu)建鏡像需使用的命令,需要的朋友可以參考下
    2007-01-01

最新評論