Docker部署SpringBoot服务(Jar包映射部署)

发布于:2024-04-16 ⋅ 阅读:(121) ⋅ 点赞:(0)

介绍

项目在docker部署运行以后,每次需更新jar包时,都得重新制作镜像,再重新制作容器。流程及其繁琐,效率极低。
以下步骤是在不更新镜像和容器的前提下,直接更新jar完成项目更新的操作。

不重新制作镜像部署

1. 创建你存放项目的文件夹

我的文件目录是 /home/application/framework 分别在里面创建两个子文件夹 data : 存放项目jar包 , Dockerfile, start.sh ; tmp : 存放临时文件

在这里插入图片描述

2. 创建Dockerfile文件

# Docker image for springboot file run
# 基础镜像使用java
FROM openjdk:8-jdk
# 作者
MAINTAINER Mr.Gao

# VOLUME 指定了临时文件目录为/tmp。
VOLUME /tmp

#设置工作目录 此后RUN、CMD、ENTRYPOINT、COPY、ADD等命令都在此目录下作为当前工作目录
WORKDIR /data

#执行data下的 start.sh
CMD ["sh","-c","/data/start.sh"]

3. 创建 start.sh

#启动jar包 *** 表示你要运行的jar我的是 sky-server-1.0-SNAPSHOT.jar
java -jar /data/***.jar 

在 start.sh文件夹下执行 chmod +x start.sh命令

在这里插入图片描述

4. 制作镜像

#sky 是镜像的名称可以根据自己的项目进行修改
docker build -t sky .

在这里插入图片描述

#查看容器镜像
docker images

在这里插入图片描述

5. 制作容器

docker run -d --name sky-api  -it -v /home/application/framework/tmp:/tmp  -v /home/application/framework/data:/data    -p 8089:8080  sky
参数介绍
	< -d 后台运行
	< -mane 容器名称
	< -p 指定端口映射 格式为: 主机port:容器port
	< -it 运行一个交互式的容器,并分配一个伪终端
	< -v 绑定一个卷
	< --restart=always 自启动
	<  最后面的sky 是你制作的镜像名

在这里插入图片描述

docker ps -a #查询容器是否启动

 docker logs --tail 300 -f sky-api #查询容器的日志   sky-api 是你的容器名

在这里插入图片描述

6. 验证

我的验证方式是部署的jar和替换后的jar去除了一个接口
现在的接口是3个
在这里插入图片描述

#替换jar需要先停止docker容器
docker stop sky-api 

在这里插入图片描述
上传要替换的jar包到你的项目的路径 我的是 /home/application/framework/data

上传完以后启动容器

docker start sky-api

启动以后再次验证
在这里插入图片描述

替换成功,三个接口变成两个了