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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

几款高效在线文档编辑器推荐,编辑文档更轻松

在数字化时代&#xff0c;文档编辑工作变得越来越重要。无论是工作报告、学习笔记还是创意文稿&#xff0c;一个优秀的在线文档编辑器都能让你的工作事半功倍。现在市面上也有很多优秀的在线文档编辑器&#xff0c;比如WPS Office、腾讯文档、 Microsoft Word Online。今天&…

openGauss_5.0.1 企业版安装及问题记录(CentOS系统):主备模式服务器安装

目录 &#x1f4da;第一章 官方地址&#x1f4d7;安装包下载地址&#x1f4d7;文档指南 &#x1f4da;第二章 安装&#x1f4d7;准备工作&#x1f4d7;开始安装&#x1f4d5;创建XML配置文件&#x1f4d5;初始化安装环境&#x1f4d5;执行安装&#x1f4d5;验证 &#x1f4da;第…

【数据结构】第三节:单链表

前言 本篇要求掌握的C语言基础知识&#xff1a;指针、结构体 目录 前言 单链表 概念 对比链表和顺序表 创建链表 实现单链表 准备工作 打印链表 创建节点并初始化 尾插 二级指针的调用 尾插代码 头插 尾删 头删 查找&#xff08;返回节点&#xff09; 在指定位…

C#硬件接口开发------一文了解WMI

&#x1f388;个人主页&#xff1a;靓仔很忙i &#x1f4bb;B 站主页&#xff1a;&#x1f449;B站&#x1f448; &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;C# 硬件接口开发 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足…

优优嗨聚集团:如何优雅地解决个人债务问题,一步步走向财务自由

在快节奏的现代生活中&#xff0c;个人债务问题似乎已成为许多人不得不面对的挑战。正确处理个人债务&#xff0c;不仅关系到个人信用和财务状况&#xff0c;更是实现财务自由的重要一步。本文将为您提供一些实用的建议&#xff0c;帮助您优雅地解决个人债务问题&#xff0c;走…

设计模式之备忘录模式(下)

3&#xff09;实现多次撤销 1.结构图 对负责人类MementoCaretaker进行了修改&#xff0c;在其中定义了一个ArrayList类型的集合对象来存储多个备忘录。 2.代码实现 import java.util.*;public class MementoCaretaker {//定义一个集合来存储多个备忘录private ArrayList mem…

学员分享丨十年架构师感悟:敢于“提出问题”

最近呢小誉收到了一位工作十年的学员投稿&#xff0c;这位学员是2011年从誉天学习HCIE课程并顺利拿证&#xff0c;先后在华为等大厂工作。他想把他这十年的工作经验分享给各位学弟学妹们。 这些经验并非来自于具体的技术实现&#xff0c;而是在架构设计和实施过程中所体会到的一…

Github 2024-04-09 Python开源项目日报 Top10

根据Github Trendings的统计,今日(2024-04-09统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目10Vue项目1JavaScript项目1系统设计指南 创建周期:2507 天开发语言:Python协议类型:OtherStar数量:241693 个Fork数量:42010 次…

C++生成动态库,C++和C#以及Java在windows和linux调用

Windows生成dllC库 1、创建动态链接库项目 源文件编写函数 // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h"int sum(int a, int b) {return a b; }BOOL APIENTRY DllMain( HMODULE hModule,DWORD ul_reason_for_call,LPVOID lpReserved) {switch…

【LAMMPS学习】八、基础知识(1.8)键的断裂

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语&#xff0c;以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

取出/var/log/secure中一小时内登录失败超过三次的IP

取出/var/log/secure中一小时内登录失败超过三次的IP 前两个字段是日期&#xff0c;第三个字段是小时&#xff0c;第四个字段是IP cat /var/log/secure | sort -i | awk -F [ :] /Failed/{a[$1" "$2" "$3" "$4" "$(NF-3)]}END{for(i …

使用 Python 实现复制粘贴的功能

pandas 里面有一个 pd.read_clipboard 函数&#xff0c;可以根据你复制的内容生成DataFrame。是的&#xff0c;就是我们平时选中&#xff0c;然后 CtrlC 时拷贝的内容。所以比较神奇&#xff0c;那么 pandas 到底是怎么做到的&#xff0c;它是怎么读出我们使用 Ctrl C 复制的内…

【面试题】s += 1 和 s = s + 1的区别

文章目录 1.问题2.发现过程3.解析 1.问题 以下两个程序真的完全等同吗&#xff1f; short s 0; s 1; short s 0; s s 1; 2.发现过程 初看s 1 和 s s 1好像是等价的&#xff0c;没有什么区别。很长一段时间内我也是这么觉得&#xff0c;因为当时学习c语言的时候教科书…

更优性能与性价比,从自建 ELK 迁移到 SLS 开始

作者&#xff1a;荆磊 背景 ELK (Elasticsearch、Logstash、Kibana) 是当下开源领域主流的日志解决方案&#xff0c;在可观测场景下有比较广泛的应用。 随着数字化进程加速&#xff0c;机器数据日志增加&#xff0c;自建 ELK 在面临大规模数据、查询性能等方面有较多问题和挑…

【简单讲解如何安装与配置Composer】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

实时渲染 -- 流明(Lumen)

首先我们需要知道Lumen需要解决哪些问题。 很多人都会问&#xff0c;既然已经有了硬件的Raytracing &#xff0c;我们为什么还要Lumen呢。这是由于很多硬件并不支持 Realtime Raytracing&#xff0c;对于支持的那些硬件&#xff0c; N 卡还算是勉强可以&#xff0c;而 A 卡支持…

震动Github榜!7K Star火爆的数字人竟然开源了,拿走不谢(文末福利免费领)

本号专注于分享Github和Gitee上的高质量开源项目&#xff0c;并致力于推动前沿技术的分享。 软件介绍 Fay数字人框架-带货版是一个用于构建数字人应用场景的开源项目&#xff0c;具有低耦合度的各功能模块。你可以轻松更换声音来源、语音识别、情绪分析、NLP处理、情绪语音合成…

ES6-2:Iterator、Proxy、Promise、生成器函数...

11-Iterator迭代器 打印出的是里面的内容&#xff0c;如果是for in打印出来的是索引&#xff0c;of不能遍历对象Symbol.iterator是js内置的&#xff0c;可以访问直接对象arr[Symbol.iterator]&#xff0c;()调用对象非线性一般不能迭代 后两个是伪数组&#xff0c;但是是真迭…

Android,AMS、WMS、PKMS添加动态控制debug开关功能

问题背景 在framework源码中有很多debug开关,通常我们想要看某个模块的日志,比如说广播,就需要去修改源码,把对应的debug值改为true,但是这种方法耗时耗力,比如说我想看sendBroadcast的流程,但是BroadcastQueue中有很多debug开关,如下: 这种就需要去修改对应的源码才…

腾讯客户端开发实习一面

听说腾讯25年5000offer&#xff0c;我就去了...投完简历&#xff0c;当天晚上做完测评&#xff0c;第二天下午打电话约了第三天面试&#xff0c;额流程很快&#xff0c;快到第三天就寄了... 写在这里做个记录&#xff0c;也可以给学习学妹们经验&#xff0c;文末也有大厂面经合…