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

介绍

项目在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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/547748.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于单片机的智能模拟路灯控制系统

摘 要: 随着电力资源的紧缺,以及光污染和雾霾天气的影响,更智能化的路灯设计对人们的日常生活意义重大。本文的智能路灯控制系统是基于单片机的控制器,通过介绍该系统相应的硬件设计和软件设计,实现定时开关和依具体情况是否需要来开关路灯和进行亮度调节,并且具有自检功能…

CESS 受邀出席香港Web3.0标准化协会第一次理事会议,共商行业未来

2024 年 4 月 5 日&#xff0c;CESS&#xff08;Cumulus Encrypted Storage System&#xff09;作为香港 Web3.0 标准化协会的副理事会成员&#xff0c;于香港出席了 2024 年度第一次理事会会议。此次会议汇聚了来自不同领域的知名企业和专家&#xff08;参会代表名单见文末&am…

PaddleOCR训练自己模型(1)----数据准备

一、下载地址&#xff1a; PaddleOCR开源代码&#xff08;下载的是2.6RC版本的&#xff0c;可以根据自己需求下载&#xff09; 具体环境安装就不详细介绍了&#xff0c; 挺简单的&#xff0c;也挺多教程的。 二、数据集准备及制作 &#xff08;1&#xff09;下载完代码及配置…

实时气象水文监测站

TH-SW4随着科技的飞速发展和人类对环境保护意识的日益增强&#xff0c;实时气象水文监测站在水库环境管理中的作用日益凸显。这种在线监测技术不仅为水库的安全运行提供了坚实的技术支撑&#xff0c;也为环境保护和灾害预防提供了及时、准确的数据支持。 一、实时气象水文监测…

酷开科技以用户为中心,搭建强大空间赋能的酷开系统

从市场前景和竞争格局来看&#xff0c;现在人口红利正在消逝&#xff0c;中国刚需类家电消费正在进入饱和期。在目前激烈的市场竞争环境下&#xff0c;智能家电正在成为家居市场新宠儿。酷开科技以用户为中心&#xff0c;为用户搭建智能的酷开系统&#xff0c;具有强大的空间赋…

[C++][算法基础]求最小生成树(Prim)

给定一个 n 个点 m 条边的无向图&#xff0c;图中可能存在重边和自环&#xff0c;边权可能为负数。 求最小生成树的树边权重之和&#xff0c;如果最小生成树不存在则输出 impossible。 给定一张边带权的无向图 G(V,E)&#xff0c;其中 V 表示图中点的集合&#xff0c;E 表示图…

【C++】explicit关键字详解(explicit关键字是什么? 为什么需要explicit关键字? 如何使用explicit 关键字)

目录 一、前言 二、explicit关键字是什么&#xff1f; 三、构造函数还具有类型转换的作用 &#x1f34e;单参构造函数 ✨引出 explicit 关键字 &#x1f34d;多参构造函数 ✨为什么需要explicit关键字&#xff1f; ✨怎么使用explicit关键字&#xff1f; 四、总结 五…

硕博电子经济型高性能LED面板

在科技进步的洪流中&#xff0c;硕博电子始终保持敏锐的洞察力与创新能力。SPM-LEDP-C12是硕博电子开发的兼具性价比与创新性能的LED面板。该产品具备1路CAN总线&#xff0c;12个LED指示灯&#xff08;丝印字符带背光&#xff09;。 不同于以往独立控制的单个指示灯&#xff…

StableDiffusion-02 LoRA上手使用实测 尝试生成图片 使用多个LoRA 调整LoRA效果 10分钟上手 多图

准备工作 请你确保&#xff0c;你已经完成了 StableDiffusion-01 这一节的内容&#xff0c;可以顺利的运行SD&#xff0c;并且可以正常的生成图片。 本节我们就尝试使用LoRA并生成图片。 介绍 LoRA Stable Diffusion中的LoRA&#xff08;Low-Rank Adaptation&#xff0c;低秩…

ubuntu下的串口调试工具cutecom

系统&#xff1a;ubuntu20.04 &#xff08;1&#xff09;接线 使用 rs485&#xff1c;-----> rs232 转接口&#xff08; 设备直接出来的是rs485&#xff09;&#xff0c;电脑主机接入一根 rs232&#xff1c;-----> USB口 连接线&#xff0c;ubuntu系统下打开 termin…

【Vue】setup语法糖的使用

文章目录 setup简介使用vite-plugin-vue-setup-extend插件 指定组件名字 setup简介 <script setup> 是在单文件组件 (SFC) 中使用组合式 API 的编译时语法糖 相比较普通的<script> ,它有以下优势&#xff1a; 更少的样板内容&#xff0c;更简洁的代码。能够使用纯…

RocketMQ为什么这么快?

如果你对 RocketMQ 还不了解&#xff0c;可以查看我之前写的关于 RocketMQ 专栏 的几篇文章 如果你对 RocketMQ 源码也感兴趣&#xff0c;可以从下面这个仓库 fork 一下源码&#xff0c;我在源码中加了中文注释&#xff0c;并且后面我还会持续更新注释 https://github.com/san…

自然语言处理——情绪检测数据集

一、重要性及意义 情绪检测的重要性和意义体现在多个方面&#xff0c;不仅对于个人日常生活有深远影响&#xff0c;也在多个行业和领域中扮演着关键角色。以下是情绪检测的重要性和意义的具体体现&#xff1a; 提高人机交互体验&#xff1a; 在人工智能和机器学习驱动的系统中…

MySQL慢SQL优化方案汇总

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《mysql经验总结》 &#x1f30a;山高路远&#xff0c;行路漫漫&#xff0c;终有归途 目录 写在前面 优化思路 避免查询不必要的列 分页优化 索引优化 JOIN优化 排序优化 UNION 优化 写在最后 写在前面 本…

Netty学习——实战篇3 BIO与NIO零拷贝 和 Netty入门实战

1 BIO拷贝 BIOServer.java public class BIOServer {public static void main(String[] args) throws Exception{ServerSocket serverSocket new ServerSocket(8000);while(true){Socket socket serverSocket.accept();DataInputStream inputStream new DataInputStream(so…

使用美化方法设计嵌入的子窗体(三)

使用美化方法设计嵌入的子窗体 分析效果图的实现 效果图&#xff1a; 新建 Windows 窗体 新窗体命名&#xff1a;FrmAddProduct.cs修改窗体的 Text 属性&#xff1a;新增商品修改窗体的位置&#xff1a;StartPosition&#xff1a;CenterScreen窗体的无边框设计&#xff1a…

拼多多容器文件修改自动上传

拼多多开放平台php环境是官方的linux容器&#xff0c;不能自己搭建ftp上传文件&#xff0c;每每有文件更新都挺麻烦。 有些功能测试不想每次都打包全部代码上去重新发布一次程序生成新的容器&#xff0c;那样太过麻烦和效率低。 一开始搞了一个php的文件管理工具上去&#xf…

电压比较器LM339介绍和仿真

电压比较器LM339介绍和仿真 &#x1f4d1;LM339相关特性 工作电源电压范围宽&#xff0c;单电源、双电源均可工作&#xff0c;单电源&#xff1a; 2&#xff5e;36V&#xff0c;双电源&#xff1a;1&#xff5e;18V&#xff1b;消耗电流小&#xff0c; Icc1.3mA&#xff1b;输…

《Kubernets证书篇:基于Kylin V10+ARM架构CPU修改K8S 1.26.15版本证书时间限制》

一、背景 Kubernetes 默认的证书有效期只有1年&#xff0c;因此需要每年手动更新一次节点上面的证书&#xff0c;特别麻烦而且更新过程中可能会出现问题&#xff0c;因此我们要对 Kubernetes 的 SSL 证书有效期进行修改&#xff0c;这里将证书的时间限制修改为100年。 环境信息…

【日常记录】【JS】styled-components库的原理,模板字符串调用函数

文章目录 1、引言2、模板字符串调用函数3、实现 1、引言 在react 中&#xff0c;styled-components 是最流行的 css in js 模式的库 2、模板字符串调用函数 let stu {name: 呆呆狗,age: 30,address: 中国}let str fn你好${stu.name}今年${stu.age}岁,来自${stu.address}这样会…