docker 运行自定义化的服务-后端

docker 运行自定义化的服务-前端-CSDN博客

运行自定义化的后端服务

具体如下:

①打包后端项目,形成jar包

②编写dockerfile文件,文件内容如下:

# 使用官方 OpenJDK 镜像
FROM jdk8:1.8LABEL maintainer="ATB" version="1.0" description="Docker image for ruoyi-admin Spring Boot application"# 创建目录(logs、上传目录等)
RUN mkdir -p /home/soft/app/serverapp/logs /home/soft/app/serverapp/uploadPath# 设置工作目录
WORKDIR /home/soft/app/serverapp# 拷贝 Spring Boot jar 包和 config 配置(可选)
COPY ./jar/ruoyi-admin.jar ./ruoyi-admin.jar
COPY ./jar/config ./config# 日志持久化挂载点(建议在运行时挂载)
VOLUME ["/home/soft/app/serverapp/logs", "/home/soft/app/serverapp/uploadPath"]# 暴露 Spring Boot 服务端口(比如 8282)
EXPOSE 8282# 健康检查(可选)
HEALTHCHECK --interval=30s --timeout=5s --retries=3 \CMD wget --no-verbose --tries=1 --spider http://localhost:8282/actuator/health || exit 1# 启动服务(如果使用 config 文件夹,需要指定位置)
ENTRYPOINT ["java", "-jar", "./ruoyi-admin.jar", "--spring.config.location=classpath:/,file:./config/"]

最后把后端服务jar包、dockerfile、config(config配置文件夹,可选)放到一个文件夹serverapp中

结果如下:

├── jar/
│   ├── ruoyi-admin.jar
│   └── config/                 # 可选:Spring Boot 外部化配置
│       ├── application.yml
│       └── ...
├── Dockerfile
 

 上传到服务器中

构建docker镜像:docker build -t 容器名:版本号 .

docker build -t my-serverapp:1.0 .

运行容器:

docker run -d  -p 8282:8282  --name ryserverapp  my-serverapp:1.0

可选添加 -it :docker run -it -d -p 8282:8282 my-serverapp:1.0
运行容器(可选挂载日志)推荐

docker run -d  --name ruoyi-backend  -p 8282:8282  -v /home/soft/app/serverapp/logs:/home/soft/app/serverapp/logs  -v /home/soft/app/serverapp/uploadPath:/home/soft/app/serverapp/uploadPath  my-serverapp:1.0

docker run -d \
  --name ryserverapp \
  -p 8282:8282 \
  -v /home/soft/app/serverapp/logs:/home/soft/app/serverapp/logs \
  -v /home/soft/app/serverapp/uploadPath:/home/soft/app/serverapp/uploadPath \
  my-serverapp:1.0

运行容器一些参数说明:

-d:后台运行容器,并返回容器ID。
-p:指定端口映射,格式为:主机(宿主)端口:容器端口。
-i:以交互模式运行容器,通常与 -t 同时使用。
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用。
--name:为容器指定一个名称。
-e:设置环境变量。
-v:绑定一个卷。 

然后就可以正常访问了

查看容器运行日志:docker logs 容器ID

docker logs fca4bb2c4e02(容器ID)


其他命令内容:

停止所有运行中的容器

docker stop $(docker ps -q)

其中,docker ps -q 会生成所有运行中容器的 ID 列表,docker stop 会停止这些容器

要删除所有容器

docker rm $(docker ps -aq)

其中,docker ps -aq 会生成所有容器的 ID 列表,docker rm 会删除这些容器

同时停用并删除所有容器

docker stop $(docker ps -q) && docker rm $(docker ps -aq)

该命令首先停止所有运行中的容器,然后删除所有容器

docker stop $(docker ps -a -q)

该命令会遍历所有容器,并使用它们的ID(以q参数的格式)来停止。使用-a参数确保包括所有状态的容器。


其他docker相关:

Docker 相关内容记录-CSDN博客

银河麒麟国产化系统(或者是Linux)一键安装docker和docker-compose_银河麒麟安装docker compose-CSDN博客

docker 环境下运行部署相关内容-CSDN博客 

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

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

相关文章

解决java使用easyexcel填充模版后,高度不一致问题

自定义工具,可以通过获取上一行行高设置后面所以行的高度 package org.springblade.modules.api.utils;import com.alibaba.excel.write.handler.RowWriteHandler; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import com.alibaba.excel.wr…

repo仓库文件清理

1. repo 仓库内文件清理 # 清理所有Git仓库中的项目 repo forall -c git clean -dfx # 重置所有Git 仓库中的项目 repo forall -c git reset --hard 解释: repo forall -c git clean -dfx: repo forall 是一个用于在所有项目中执行命令的工具。-c 后…

结合大语言模型整理叙述并生成思维导图的思路

楔子 我比较喜欢长篇大论。这在代理律师界被视为一种禁忌。 我高中一年级的时候因为入学成绩好(所在县榜眼名次),直接被所在班的班主任任命为班长。我其实不喜欢这个岗位。因为老师一来就要提前注意到,要及时喊“起立”、英语课…

spark-core编程2

Key-Value类型: foldByKey 当分区内计算规则和分区间计算规则相同时,aggregateByKey 就可以简化为 foldByKey combineByKey 最通用的对 key-value 型 rdd 进行聚集操作的聚集函数(aggregation function)。类似于aggregate()&…

原理图设计准备:页面栅格模板应用设置

一、页面大小的设置 (1)单页原理图页面设置 首先,选中需要更改页面尺寸的那一页原理图,鼠标右键,选择“Schmatic Page Properties”选项,进行页面大小设置。 (2)对整个原理图页面设…

关于异步消息队列的详细解析,涵盖JMS模式对比、常用组件分析、Spring Boot集成示例及总结

以下是关于异步消息队列的详细解析,涵盖JMS模式对比、常用组件分析、Spring Boot集成示例及总结: 一、异步消息核心概念与JMS模式对比 1. 异步消息核心组件 组件作用生产者发送消息到消息代理(如RabbitMQ、Kafka)。消息代理中间…

【深度洞察】解码饮料行业破局点:场景革命

当东鹏特饮以 “大瓶装 防尘盖” 精准解决货车司机的场景化需求,当农夫山泉通过 “冷藏版东方树叶” 打开年轻白领的早餐场景 —— 这些现象级案例背后,是饮料行业底层逻辑的深刻变革:真正的市场增量,藏在对消费场景的极致拆解中…

二、TorchRec中的分片

TorchRec中的分片 文章目录 TorchRec中的分片前言一、Planner二、EmbeddingTable 的分片TorchRec 中所有可用的分片类型列表 三、使用 TorchRec 分片模块进行分布式训练TorchRec 在三个主要阶段处理此问题 四、DistributedModelParallel(分布式模型并行)…

如何在 Spring Boot 项目中使用 MyBatis 进行批量操作以提升性能?

MyBatis 提供了 ExecutorType.BATCH 类型,允许将多个 SQL 语句进行组合,最后统一执行,从而减少数据库的访问频率,提升性能。 以下是如何在 Spring Boot 项目中使用 MyBatis 进行批量操作的关键点: 1. 配置 MyBatis 使…

Redis 字符串(String)详解

1. 什么是字符串类型 在 Redis 中,字符串(String) 是最基本的数据类型。它可以包含任何数据,比如文本、JSON、甚至二进制数据(如图片的 Base64 编码),最大长度为 512 MB。 字符串在 Redis 中不…

Elasticsearch 系列专题 - 第四篇:聚合分析

聚合(Aggregation)是 Elasticsearch 的强大功能之一,允许你对数据进行分组、统计和分析。本篇将从基础到高级逐步讲解聚合的使用,并结合实际案例展示其应用。 1. 聚合基础 1.1 什么是聚合(Aggregation)? 聚合是对文档集合的统计分析,类似于 SQL 中的 GROUP BY 和聚合…

YOLO学习笔记 | YOLOv8 全流程训练步骤详解(2025年4月更新)

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 这里写自定义目录标题 一、数据准备1. 数据标注与格式转换2. 配置文件生…

context上下文(一)

创建一个基础的context 使用BackGround函数,BackGround函数原型如下: func Background() Context {return backgroundCtx{} } 作用:Background 函数用于创建一个空的 context.Context 对象。 context.Background() 函数用于获取一个空的 cont…

Java中常见的设计模式

Java中常见的设计模式 Java 中有 23 种经典设计模式,通常被分为三大类:创建型、结构型和行为型。每个设计模式都解决了不同类型的设计问题。以下是几种常见设计模式的总结,并附带了实际应用场景、示例代码和详细的注释说明。 一、创建型设计…

责任链设计模式(单例+多例)

目录 1. 单例责任链 2. 多例责任链 核心区别对比 实际应用场景 单例实现 多例实现 初始化 初始化责任链 执行测试方法 欢迎关注我的博客!26届java选手,一起加油💘💦👨‍🎓😄😂 最近在…

springboot 处理编码的格式为opus的音频数据解决方案【java8】

opus编码的格式概念: Opus是一个有损声音编码的格式,由Xiph.Org基金会开发,之后由IETF(互联网工程任务组)进行标准化,目标是希望用单一格式包含声音和语音,取代Speex和Vorbis,且适用…

vue项目引入tailwindcss

vue3项目引入tailwindcss vue3 vite tailwindcss3 版本 初始化项目 npm create vitelatest --template vue cd vue npm install npm run dev安装tailwindcss3 和 postcss 引入 npm install -D tailwindcss3 postcss autoprefixer // 初始化引用 npx tailwindcss init -p…

Google ADK(Agent Development Kit)简要示例说明

一、环境准备与依赖安装 1.1 系统 硬件: GPU NVIDIA 3070加速模型推理,内存64GB软件: Python 3.11Docker 28.04(用于容器化部署)Kubernetes 1.25(可选,用于集群管理) 1.2 安装 A…

批量给文件编排序号,支持数字序号及时间日期序号编排文件

当我们需要对文件进行编号的时候,我们可以通过这个工具来帮我们完成,它可以支持从 001 到 100 甚至更多的数字序号编号。也可以支持按照日期、时间等方式对文件进行编号操作。这是一种操作简单,处理起来也非常的高效文件编排序号的方法。 工作…

【系统架构】AI时代下,系统架构师如何修炼

在AI时代,系统架构师的角色正经历深刻变革,需在技术深度、工具应用与思维模式上全面升级。以下结合行业趋势与实践建议,总结系统架构师的修炼路径: 一、掌握AI工具,重构工作流 自动化文档与设计 利用生成式AI(如DeepSeek、ChatGPT)完成70%的需求文档、接口设计及架构图生…