Docker部署jar包,并运行
创始人
2024-05-25 13:13:49
0

对于springboot项目运行,直接是 java -jar 的方式运行,如果想要放到docker中运行,有两种方式:

方式一:使用 Dockerfile 文件

1、上传 jar 到服务器(宿主机)的指定目录

2、在该目录下创建 Dockerfile 文件

3、编辑 Dockerfile 文件,将下面的内容复制到 Dockerfile 文件中

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

参数说明:
from java:8 :指的是拉取一个 jdk1.8docker image
maintainer 作者是bingo
demo-0.0.1-SNAPSHOT.jar 就是你上传的jar包,替换为jar包的名称
demo.jar 是你将该 jar 包重新命名为什么名称,在容器中运行
expose 该容器暴露的端口是多少,就是 jar 在容器中以多少端口运行
entrypoint 容器启动之后执行的命令,java -jar demo.jar 即启动 jar

4、创建好 Dockerfile 文件之后,执行命令构建镜像

docker build -t my/demo .

注意:

最后的 . :表示 Dockerfile 文件在当前目录下

my/demo :构建之后镜像名称

5、镜像构建成功之后,就可以运行容器了

docker run -d --name demo -p 8080:8080 my/demo# 或者
docker run -d --restart=always --name demo -p 8080:8080  my/demo
# 这个表示 docker 容器在停止或服务器开机之后会自动重新启动 --restart=always

6、然后查看容器有没有在运行

docker ps

7、查看启动日志

docker logs --tail  300 -f  demo

如果 docker run 的时候没有加 --restart=always , 那么已经运行的 docker 容器怎么设置自动重启? 执行下面命令:

docker update –-restart=always demo 

demo : 启动容器的名称

方式一:

这种方式是运行一个 jdk 的容器,挂载其中的目录到宿主机,运行 jdk 之后,就可以将需要运行的 jar 放在宿主机的挂载

目录下,然后每次重新运行 docker 容器即可。不用每次发布需要重新构建 docker 容器,只需要替换宿主机中的 jar 包即可。

1、在服务器中拉取jdk1.8的镜像

docker pull jdk8

2、创建目录

cd /server/mkdir deploy/jar

3、构建容器

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 :是设置时区

jdk8 /usr/bin/java -jar :是执行 java jar 的命令

/jar/demo-1.0.jar :是需要运行的 jar 包的位置在容器中的什么位置,/jar 下面

docker 启动的参数说明:

OptionsMean
-i以交互模式运行容器,通常与 -t 同时使用;
-t为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-d后台运行容器,并返回容器ID;

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...