docker部署可执行的jar
1.将项目打包,上传到服务器的指定目录
2.在该目录下创建Dockerfile文件
3.Dockerfile写入如下指令
# 基于哪个镜像
FROM java:8
# 拷贝文件到容器,也可以直接写成ADD xxxxx.jar /app.jar
ADD springboot-file-0.0.1.jar file.jar
RUN bash -c 'touch /file.jar'
# 声明需要暴露的端口
EXPOSE 8018
# 配置容器启动后执行的命令
ENTRYPOINT ["java","-jar","/file.jar"]
其中指令的含义:
- FROM:基础镜像,
FROM java:8指的是拉取一个jdk1.8的镜像 - MAINTAINER:作者,
MAINTAINER demo作者是demo - ADD: 将打包的可执行jar包复制到镜像中并重命名(用 COPY 也可),
ADDspringboot-file-0.0.1.jar file.jar 将pringboot-file-0.0.1.jar 复制到镜像中并重命名为 file.jar - EXPOSE: 声明端口
- ENTRYPOINT : 容器启动之后执行的命令,
java -jar file.jar即启动jar
4.创建好Dockerfile文件之后,执行命令构建镜像
注意:-t 后面的文件名与Dockerfile中重命名后的文件名保持一致
docker build -t file .
构建成功后可以使用docker images命令查看镜像。

5.镜像构建成功之后,就可以运行容器
docker run -d --restart=always --name file -p 8080:8080 file
其中参数的含义:
- -d :后台运行容器,并返回容器ID
- –restart=always :容器在停止或服务器开机之后会自动重新启动
- -p :指定端口映射
- 最后的 file指定镜像
- 启动容器后可以使用
docker ps命令查看启动的容器 docker logs --tail 300 -f 容器id,可以查看服务的日志。- 如果想更新jar包,只需要使用
docker cpfile-0.0.1-SNAPSHOT.jar 容器ID:/file.jar,就可以将file-0.0.1-SNAPSHOT.jar拷贝进容器并重命名,然后docker restart 容器ID重启容器。

6.在浏览器访问测试的url
指定端口映射为8018
访问探针接口http://192.168.110.105:8018/test/say

到这里,docker 部署可执行文件就成功了
7.注意事项
7.1.推荐的删除镜像和容器的方法
优雅地删除镜像的最佳做法是:先停止容器,再删除容器,最后删除镜像。
优雅地删除容器的最佳做法是:先停止容器,再删除容器。
#查看容器
docker ps
#停止容器
docker stop 容器名称或ID
#删除容器
docker rm 容器名称或容器ID#查看镜像
docker images
#删除镜像
docker rmi 镜像id


7.2. 端口问题
注意Dockerfile文件中的端口与docker run保存一致,最好与jar包的端口一致
7.3.因运存不足无法给进程分配更多的文件句柄数而异常退出
docker 启动报错 library initialization failed - unable to allocate file descriptor table - out of memory
因运存不足无法给进程分配更多的文件句柄数而异常退出
原运行指令
docker run -d --restart=always --name file -p 8018:8018 file
1
改为
docker run --ulimit nofile=1024 -d --restart=always --name file -p 8018:8018 file
相关文章:
docker部署可执行的jar
1.将项目打包,上传到服务器的指定目录 2.在该目录下创建Dockerfile文件 3.Dockerfile写入如下指令 # 基于哪个镜像 FROM java:8 # 拷贝文件到容器,也可以直接写成ADD xxxxx.jar /app.jar ADD springboot-file-0.0.1.jar file.jar RUN bash -c touch /…...
OpenCV||超详细的图像处理模块
一、颜色变换cvtColor dst cv2.cvtColor(src, code[, dstCn[, dst]]) src: 输入图像,即要进行颜色空间转换的原始图像。code: 转换代码,指定要执行的颜色空间转换类型。这是一个必需的参数,决定了源颜色空间到目标颜色空间的转换方式。dst…...
java面向对象期末总结
子类父类方法执行顺序?多态中和子类打印不一样; 子类在实现父类方法的时候没有用super关键字进行调用也会先执行父类的构造方法吗? 是的,当子类实例化时,先执行父类的构造方法,再执行子类的构造方法。即使在…...
文件搜索 36
删除文件 文件搜索 package File;import java.io.File;public class file3 {public static void main(String[] args) {search(new File("D :/"), "qq");}/*** 去目录搜索文件* param dir 目录* param filename 要搜索的文件名称*/public static void sear…...
IO多路转接
文章目录 五种IO模型fcntl多路转接selectpollepollepoll的工作模式 五种IO模型 阻塞IO: 在内核将数据准备好之前, 系统调用会一直等待. 所有的套接字, 默认都是阻塞方式.阻塞IO是最常见的IO模型。非阻塞IO: 如果内核还未将数据准备好, 系统调用仍然会直接返回, 并且返回EWOULD…...
基于深度学习的面部表情分类识别系统
:温馨提示:文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 面部表情识别是计算机视觉领域的一个重要研究方向, 它在人机交互、心理健康评估、安全监控等领域具有广泛的应用。近年来,随着深度学习技术的快速发展…...
日志远程同步实验
目录 一.实验环境 二.实验配置 1.node1发送方配置 (1)node1写udp协议 (2)重启服务并清空日志 2.node2接收方配置 (1)node2打开接受日志的插件,指定插件用的端口 (2ÿ…...
数据结构之《二叉树》(中)
在数据结构之《二叉树》(上)中学习了树的相关概念,还了解的树中的二叉树的顺序结构和链式结构,在本篇中我们将重点学习二叉树中的堆的相关概念与性质,同时试着实现堆中的相关方法,一起加油吧! 1.实现顺序结构二叉树 在…...
php json_encode 参数 JSON_PRETTY_PRINT
https://andi.cn/page/621642.html...
【UE 网络】Gameplay框架在DS架构中的扮演的角色
目录 0 引言1 核心内容1.1 Gameplay各部分创建的流程1.2 Gameplay框架在DS和客户端的存在情况1.3 数据是独立存在于DS和客户端的 2 Gameplay框架各自负责的功能2.1 GameMode2.2 GameState2.3 PlayerController2.4 PlayerState2.5 Pawn2.6 AIController2.7 Actor2.8 HUD2.9 UI &…...
【云原生】StatefulSet控制器详解
StatefulSet 文章目录 StatefulSet一、介绍与特点1.1、介绍1.2、特点1.3、组成部分1.4、为什么需要无头服务1.5、为什么需要volumeClaimTemplate 二、教程2.1、创建StatefulSet2.2、查看部署资源 三、StatefulSet中的Pod3.1、检查Pod的顺序索引3.2、使用稳定的网络身份标识3.3、…...
使用 Python 制作一个属于自己的 AI 搜索引擎
1. 使用到技术 OpenAI KEYSerper KEYBing Search 2. 原理解析 使用Google和Bing的搜搜结果交由OpenAI处理并给出回答。 3. 代码实现 import requests from lxml import etree import os from openai import OpenAI# 从环境变量中加载 API 密钥 os.environ["OPENAI_AP…...
rust读取csv文件,匹配搜索字符
1.代码 use std::fs::File; use std::io::{BufRead, BufReader}; use regex::{Regex};fn main() {let f File::open("F:\\0-X-RUST\\1-systematic\\ch2-fileRead\\data\\test.csv").unwrap();let mut reader BufReader::new(f);let re Regex::new("45asd&qu…...
隐藏采购订单类型
文章目录 1 Introduction2 code 1 Introduction The passage is that how to hiden purchase type . 2 code DATA: ls_shlp_selopt TYPE ddshselopt. IF ( sy-tcode ME21N OR sy-tcode ME22N OR sy-tcode ME23N or sy-tcode ME51N OR sy-tcode ME52N OR sy-tcode ME5…...
ESP32人脸识别开发- 基础介绍(一)
一、ESP32人脸识别的方案介绍 目前ESP32和ESP32S3都是支持的,官方推的开发板有两种,一种 ESP-EYE ,没有LCD 另一种是ESP32S3-EYE,有带LCD屏 二、ESP32人脸识别选用ESP32的优势 ESP32S3带AI 加速功能,在人脸识别的速度是比ESP32快了不少 | S…...
编程学习指南:语言选择、资源推荐与高效学习策略
目录 一、编程语言选择 1. Java:广泛应用的基石 2. C/C:深入底层的钥匙 3. Python:AI与大数据的宠儿 4. Web前端技术:构建交互界面的艺术 二、学习资源推荐 1. 国内外在线课程平台 2. 官方文档与教程 3. 书籍与电子书 4…...
AWS开发人工智能:如何基于云进行开发人工智能AI
随着人工智能技术的飞速发展,企业对高效、易用的AI服务需求日益增长。Amazon Bedrock是AWS推出的一项创新服务,旨在为企业提供一个简单、安全的平台,以访问和集成先进的基础模型。本文中九河云将详细介绍Amazon Bedrock的功能特点以及其收费方…...
CentOS 8 的 YUM 源替换为国内的镜像源
CentOS 8 的 YUM 源替换为国内的镜像源 1.修改 DNS 为 114.114.114.1141.编辑 /etc/resolv.conf 文件:2.在文件中添加或修改如下内容:3.保存并退出编辑器。 2.修改 YUM 源为国内镜像1.备份原有的 YUM 源配置:2.下载新的 YUM 源配置3.清理缓存…...
网络安全入门教程(非常详细)从零基础入门到精通_网路安全 教程
前言 1.入行网络安全这是一条坚持的道路,三分钟的热情可以放弃往下看了。2.多练多想,不要离开了教程什么都不会了,最好看完教程自己独立完成技术方面的开发。3.有时多百度,我们往往都遇不到好心的大神,谁会无聊天天给…...
浅学爬虫-爬虫维护与优化
在实际项目中,爬虫的稳定性和效率至关重要。通过错误处理与重试机制、定时任务以及性能优化,可以确保爬虫的高效稳定运行。下面我们详细介绍这些方面的技巧和方法。 错误处理与重试机制 在爬虫运行过程中,网络不稳定、目标网站变化等因素可…...
InstructPix2Pix快速部署指南:开箱即用,无需配置,小白友好
InstructPix2Pix快速部署指南:开箱即用,无需配置,小白友好 1. 什么是InstructPix2Pix? 想象一下,你拍了一张不错的照片,但总觉得哪里需要调整——也许天空应该更蓝一些,或者想给照片中的人物加…...
GEO数据实战:从精准检索到表达矩阵的完整流程
1. GEO数据库入门:精准检索癌症研究数据 第一次接触GEO数据库的研究者,往往会被海量的数据淹没。我刚开始做肺癌研究时,花了整整两周才找到合适的数据集。GEO全称Gene Expression Omnibus,是NCBI维护的公共基因表达数据库…...
Swin2SR案例分享:手机老照片经AI修复后的惊艳变化
Swin2SR案例分享:手机老照片经AI修复后的惊艳变化 1. 引言:当AI遇见泛黄的老照片 翻看手机相册,总有一些照片让人又爱又恨。爱的是它记录下的珍贵瞬间,恨的是那模糊不清的画质、粗糙的颗粒和令人抓狂的马赛克。这些照片…...
Qwen3-4B Instruct-2507快速上手:HTTP访问+侧边栏控制+清空记忆三步操作
Qwen3-4B Instruct-2507快速上手:HTTP访问侧边栏控制清空记忆三步操作 你是不是也遇到过这种情况:想找个好用的AI对话模型,要么部署复杂到劝退,要么界面简陋得像上个世纪的产物,要么就是生成速度慢得让人想砸键盘&…...
基于EMQX与HomeAssistant,构建米家自动化控制PC的智能中枢
1. 为什么需要智能中枢控制PC? 想象这样一个场景:冬天窝在被窝里追剧,突然想起电脑上的文件还没保存,这时候要是能直接用手机控制电脑关机该多方便?或者当你下班快到家时,空调自动开启、电脑自动开机&#…...
Qwen3.5-9B镜像免配置:支持NVIDIA DCGM监控指标暴露的生产级可观测性配置
Qwen3.5-9B镜像免配置:支持NVIDIA DCGM监控指标暴露的生产级可观测性配置 1. 项目概述与核心价值 Qwen3.5-9B作为新一代多模态大模型,在保持Qwen3-VL优秀特性的基础上,通过创新架构实现了性能突破。本次发布的预置镜像特别针对生产环境需求…...
Bonezegei_SoftSerial:嵌入式软件串口的工程化实践与稳定边界
1. 项目概述Bonezegei_SoftSerial 是一个面向嵌入式平台的轻量级软件串口(Software UART)实现库,专为资源受限或硬件 UART 资源不足的场景设计。其核心目标并非替代硬件 UART,而是在特定约束条件下提供可预测、可配置、工程可用的…...
BepInEx新手故障诊断与解决方案完全指南
BepInEx新手故障诊断与解决方案完全指南 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx 一、环境配置故障诊断:游戏启动无响应或闪退问题 影响范围说明 影响程度&…...
Deep Research避坑指南:RAGFlow多Agent协作中的5个常见错误与优化技巧
RAGFlow多Agent深度研究实战:5个关键优化点与避坑策略 当技术团队首次接触RAGFlow的Deep Research功能时,往往会被其多Agent协作的潜力所吸引,但在实际部署中却容易陷入几个典型陷阱。本文将基于三个真实项目复盘数据,揭示那些文档…...
FRAMSPI嵌入式驱动:面向FM25VXX系列的零等待SPI接口库
1. FRAMSPI库概述:面向Ramtron FM25VXX系列FRAM的嵌入式SPI接口驱动FRAMSPI是一个专为Ramtron(现属Cypress,后并入Infineon)FM25VXX系列串行铁电随机存取存储器(Ferroelectric RAM, FRAM)设计的轻量级、可移…...

