Docker中怎么部署可執(zhí)行jar包,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計、成都網(wǎng)站制作、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)嶧城,十余年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
將項目打包,上傳到服務(wù)器的指定目錄
在該目錄下創(chuàng)建Dockerfile文件
vi Dockerfile
Dockerfile寫入如下指令
FROM java:8 MAINTAINER demo ADD demo-0.0.1-SNAPSHOT.jar demo.jar EXPOSE 8080 ENTRYPOINT ["java","-jar","demo.jar"]
其中指令的含義:
FROM:基礎(chǔ)鏡像,FROM java:8
指的是拉取一個jdk1.8的鏡像
MAINTAINER:作者,MAINTAINER demo
作者是demo
ADD: 將打包的可執(zhí)行jar包復(fù)制到鏡像中并重命名(用 COPY 也可),ADD demo-0.0.1-SNAPSHOT.jar demo.jar
將demo-0.0.1-SNAPSHOT.jar 復(fù)制到鏡像中并重命名為 demo.jar
EXPOSE: 聲明端口
ENTRYPOINT : 容器啟動之后執(zhí)行的命令,java -jar demo.jar
即啟動jar
創(chuàng)建好Dockerfile文件之后,執(zhí)行命令 構(gòu)建鏡像
docker build -t my-demo .
注意最后的 .
表示Dockerfile在當前文件目錄下。my-demo表示構(gòu)建的鏡像,構(gòu)建成功后可以使用docker images
命令查看鏡像。
鏡像構(gòu)建成功之后,就可以運行容器
docker run -d --restart=always --name demo -p 8080:8080 my-demo
其中參數(shù)的含義:
-d :后臺運行容器,并返回容器ID
–restart=always :容器在停止或服務(wù)器開機之后會自動重新啟動
-p :指定端口映射
最后的 my-demo指定鏡像
啟動容器后可以使用 docker ps
命令查看啟動的容器
docker logs --tail 300 -f 容器id
,可以查看服務(wù)的日志。
如果想更新jar包,只需要使用docker cp demo-0.0.1-SNAPSHOT.jar 容器ID:/demo.jar
,就可以將demo-0.0.1-SNAPSHOT.jar拷貝進容器并重命名,然后 docker restart 容器ID
重啟容器。
方法一是直接構(gòu)建了一個運行jar包的鏡像,這里還有另外一種方式,基于jdk鏡像運行容器。
在服務(wù)器中拉取jdk1.8的鏡像
docker pull jdk8
創(chuàng)建目錄,并將jar包上傳到該目錄
cd /server/ mkdir deploy/jar
運行容器:在運行容器的命令里指定包的運行
docker run -d \ --restart=always \ -v /server/deploy/jar:/jar -v /server/logs/demo:/mnt/logs/demo \ -p 7778:7778 \ --name demo \ jdk8 /usr/bin/java -jar \ -Duser.timezone=GMT+08 \ /jar/demo-1.0.jar
上面命令的說明:
-Duser.timezone
:指定時區(qū)
jdk8 /usr/bin/java -jar
:執(zhí)行jar包
/jar/demo-1.0.jar
:指定需要執(zhí)行的jar包的位置。
以后發(fā)布,只需要把宿主機目錄里的jar包替換掉,重啟容器。
修改Docker配置開啟允許遠程訪問 Docker 的功能,開啟方式很簡單,修改 /usr/lib/systemd/system/docker.service
文件,加入如下內(nèi)容:
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
配置完成后,保存退出,然后重啟 Docker:
systemctl daemon-reload service docker restart
在SpringBoot項目的目錄下新建Dockerfile文件
FROM java:8 VOLUME /tmp ADD target/docker-0.0.1-SNAPSHOT.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"]
配置Maven插件:在pom.xml文件中添加如下插件:
com.spotify docker-maven-plugin 1.2.0 build-image package build http://192.168.66.131:2375 javaboy/${ project.artifactId} ${ project.version} true ${ project.basedir} / ${ project.build.directory} ${ project.build.finalName}.jar
這個插件的配置說明:
首先在 execution 節(jié)點中配置當執(zhí)行 mvn package 的時候,順便也執(zhí)行一下 docker:build
然后在 configuration 中分別配置 Docker 的主機地址,鏡像的名稱,鏡像的 tags,其中 dockerDirectory 表示指定 Dockerfile 的位置。
最后 resource 節(jié)點中再配置一下 jar 的位置和名稱即可。
執(zhí)行命令
mvn clean package docker:build
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。