SpringBoot 项目Docker部署三种方式

一种:直接拷贝jar到服务器部署

1.增加docker配置文件

新建Dockerfile文件,负责Docker的配置

FROM openjdk:21#ENV timezone
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo 'Asia/Shanghai' >/etc/timezone# WORKDIR
WORKDIR /app#Copy command, copy files or directories from the context directory to the specified path in the container
COPY spring-monitoring.jar /app/spring-monitoring.jar#EXPOSE 18081
ENTRYPOINT ["java", "-jar", "-Xmx512m", \"-XX:-OmitStackTraceInFastThrow", \"spring-monitoring.jar", "--logging.file.path=/app"]#"-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005",\

2.上传jar包到远程目录:

创建目录命令:mkdir -p /apps/spring

把自己的jar包和dockerfile文件上传到创建的目录
在这里插入图片描述

3.build新的镜像

docker build -t dtb/spring-monitoring:1.0 .
docker images #查看刚构建的镜像

在这里插入图片描述

4.启动容器:

docker run -d --name monitoring --restart always --net host dtb/spring-monitoring:1.0

在这里插入图片描述

docker安装及docker常用命令

二种:SpringBoot 通过maven插件实现docker镜像打包

此方法需要开启远程访问2375 端口不太安全,如果需要安全的话还需要Docker启用TLS加密
这里暂不做介绍

三种:idea 链接docker直接构建镜像启动容器

在项目根目录下增加docker配置文件

FROM openjdk:21#ENV timezone
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo 'Asia/Shanghai' >/etc/timezone# WORKDIR
WORKDIR /app#Copy command, copy files or directories from the context directory to the specified path in the container
COPY target/spring-monitoring.jar /app/spring-monitoring.jar#EXPOSE 18081
ENTRYPOINT ["java", "-jar", "-Xmx512m", \"-XX:-OmitStackTraceInFastThrow", \"spring-monitoring.jar", "--logging.file.path=/app"]

下载插件

在这里插入图片描述

运行配置

在这里插入图片描述
点击服务器 三个点
在这里插入图片描述

点击加号,选ssh,ssh后面的三个加号配置链接服务器
在这里插入图片描述

这里的身份验证类型是密码在这里插入图片描述
在这里插入图片描述
Only key-pair ssh auth type is supported for docker connections
刚才使用ssh账号密码的方式,docker链接需要用ssh key
在这里插入图片描述
点测试连接 输入登录用户的密码
在这里插入图片描述
在这里插入图片描述

点确定在这里插入图片描述
可以添加不同的运行选项,包括绑定端口、绑定挂载、运行选项等
在这里插入图片描述

添加执行前编译
在这里插入图片描述

选择工作目录(当前自己项目的目录)及填写命令行,命令:clean package -U -DskipTests
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
执行
在这里插入图片描述
在这里插入图片描述
成功
在这里插入图片描述

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

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

相关文章

2W 3KVDC 隔离单、双输出 DC/DC 电源模块——TPH 系列

TPH系列是一款2W,单、双输出隔离电源模块,特别适合板上只有一种电压而要求有正负电源的场合,工业级温度范围–40℃到105℃,在此温度范围内都可以稳定输出2W,并且效率非常高,高达86%,温升非常低&…

JavaSE进阶篇-面向对象程序设计

一、面向对象和面向过程的关系 1)面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做; 2)面向对象:强调了具备功能的对象,以类/对象为最小单位,考虑谁来做。 总结…

Python进阶编程 --- 3.闭包、装饰器、设计模式、多线程、网络编程、正则表达式、递归

文章目录 第三章:3.1 闭包3.2 装饰器语法糖写法 3.3 设计模式3.3.1 单例模式3.3.2 工厂模式 3.4 多线程3.4.1 进程、线程和并行执行3.4.2 多线程编程 3.5 网络编程3.5.1 Socket3.5.2 服务端开发3.5.3 客户端开发 3.6 正则表达式3.6.1 基础匹配3.6.2 元字符匹配单字符…

fopen/fwrite/fread/open/write/read的区别

fopen和Open,read和fread,write和fwrite有什么区别,很多人都会弄混了,而这经常会带来一些问题。所以在这里理清他们的关系是很有必要的。 open/read/write是Linux提供的系统调用,用户态的程序只能通过这些接口来访问文件系统层。而fopen/fread/fwrite是C库提供的文件读写接…

IT如何与业务双向奔赴,高效并驱共“盈”企业发展

随着经济和技术的飞速发展,在当前数字化时代中,如何进行有效的数字化转型、运用新技术,特别是让AI技术融入企业的具体业务场景、快速实现应用场景的落地、确保企业不落后于时代发展,是每一位CIO都会面临的一项挑战。 IT部门在企业…

springboot 载入自定义的yml文件转DTO

改进方法,直接spring注入 import cn.hutool.json.JSONUtil; import org.springframework.beans.factory.config.YamlMapFactoryBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import …

掌握Java异常处理:编写更健壮的应用程序

Java 异常处理机制是 Java 编程语言的核心特性之一,它为开发者提供了管理和处理运行时错误的有效方式。本文将深入探讨 Java 异常的类型、处理方法以及最佳实践,帮助你编写更健壮、可维护的 Java 应用程序。 1. 异常概念 异常是程序执行过程中出现的非正…

【强化学习的数学原理-赵世钰】课程笔记(十)Actor-Critic 方法

目录 一.最简单的 actor-critic(QAC):The simplest actor-critic (QAC) 二.Advantage actor-critic (A2C) 三.Off-policy actor-critic 方法 四. Deterministic actor critic(DPG) Actor-Critic 方法把基于 value 的方法,特别…

C语言中的控制语句(分支语句 if、switch、三目运算符)

程序执行的三大流程 顺序 : 从上向下, 顺序执行代码分支 : 根据条件判断, 决定执行代码的分支循环 : 让特定代码重复的执行 分支语句 条件语句用来根据不同的条件来执行不同的语句,C语言中常用的条件语句包括if语句和switch语句。 if 语句…

网络靶场实战-恶意程序自启动

简介 当恶意程序入侵目标为个人计算机时,相较于服务器,个人计算机对关机或重启操作更加频繁,关机时计算机所有的进程都会被结束,因此恶意程序需要配置自启动来使自己在每次开机时能够被运行。 本篇介绍一个恶意样本(b8090d7d12d…

Docker向harbor上传大镜像的413报错

文章目录 一、背景二、问题三、处理1.调整harbor相关大小2.正向代理的nginx参数 一、背景 最近遇到了个需求,某厂商的系统模块以容器模式部署在我们的内网环境中,厂商为我们提供了一个公网仓库,需要我们自己下载相关镜像。因此,获…

快速找到销售爆款!淘宝商品关键词搜索API接口为你开启财富之门

在如今的电商时代,淘宝作为中国最大的网络购物平台,吸引了数以亿计的用户。对于卖家而言,如何快速找到热销商品,成为其成功的关键。淘宝商品关键词搜索API接口就是为了满足这一需求而诞生的工具,联讯数据为卖家提供了全…

C# 动态加载dll

方式1 using System; using System.Reflection;class Program {static void Main(){string dllPath "path/to/your/library.dll"; // 替换为你的DLL文件路径Assembly myAssembly Assembly.LoadFile(dllPath);Type myType myAssembly.GetType("YourNamespace…

番外篇 | YOLOv8改进之在C2f中引入即插即用RepViTBlock模块 | CVPR2024清华RepViT

前言:Hello大家好,我是小哥谈。YOLOv8是一种基于深度学习的实时物体检测算法,其通过将物体检测任务转化为目标框回归问题,并使用卷积神经网络实现高效的特征提取和目标分类。然而,YOLOv8在处理一些复杂场景和小目标时可能存在一定的性能限制。为了克服YOLOv8的局限性,清华…

JMM与内存屏障

一、cpu多核并发缓存架构解析 JMM内存模型:java多线程内存模型跟cpu缓存模型类似,是基于cpu缓存模型来建立的,java线程内存模型是标准化的,屏蔽掉了底层不同计算机的区别 JMM数据原子操作 read(读取):从主内存读取数据…

算法题解记录17+++完全平方数

这是楼主第一次不靠题解,挑战动态规划的中等题目,虽然最终结果只超过了5%的人,不过我也很满意了。 本题楼主首先采用朴素的递归型动态规划,接着优化算法,使用借助HashMap存储临时数据的递归型动态规划,几次…

基于1-wire总线的多路温度监测系统

前言 在现代工业生产和环境监测中,温度是一个关键的参数,它直接影响到生产过程的稳定性和产品质量。为了确保温度控制在安全和有效的范围内,需要一种可靠且高效的多路温度监测系统。随着微电子技术和传感器技术的发展,基于1-Wire…

Redis key(BigKey、MoreKey)的存储策略

1. MoreKey 案例 1.1 大批量往 redis 里面 插入2000w 测试数据key (1) Linux Bash 下面执行&#xff0c;插入 100w rootspray:~# for((i1;i<100*10000;i)); do echo "set k$i v$i" >> /tmp/redisTest.txt; done; 查看 rootspray:~# more /tmp/redisTest.…

elementui单个输入框回车刷新整个页面

<!-- 搜索 --> <el-form :model"queryParams" ref"queryForm" :inline"true"><el-form-item label"名称" prop"nameLike"><el-input v-model"queryParams.nameLike" placeholder"请输入…

Arcgis Pro2.5安装教程(内含安装文件)

​最近处理的数据量大&#xff0c;发现arcmap这种老产品属实是不行了&#xff0c;相比于下一代的Arcgis Pro,不但运行速度慢&#xff0c;也容易遇到突然关闭的问题&#xff0c;之前基于团队的选择也没办法&#xff0c;最近实在是被数据搞得无语了&#xff0c;一鼓作气装上了Arc…