Docker部署jar包,并运行

文章介绍了两种将SpringBoot应用部署到Docker的方法。一种是通过Dockerfile创建镜像,包括添加jar包、暴露端口和设置启动命令等步骤。另一种方法是运行一个包含JDK的容器,挂载jar包目录,实现应用更新无需重建容器。两种方法都涉及容器的自动重启配置。
摘要由CSDN通过智能技术生成

对于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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值