前言

经常会有些自己写的一些SpringBoot小项目,为了实现一些小的功能/需求,但是部署的时候,不管是生成jar包,还是war包部署到tomcat中,都容易因为需要部署的环境(比如java版本、tomcat版本、端口)等进行相应调整,而且nohup java-jar又显得不是很优雅,虽然可以自己写个start.sh,stop.sh,但始终不够方便和易于管理。那么对于这种小项目,部署到docker中可以很方便的解决这些痛点。

部署过程

生成DockerFile

我们可以通过自己编写Dockerfile来生成镜像。

首先创建dockerFile文件,然后编写文件内容如下

#基于jdk8的镜像
FROM openjdk:8
#复制当前目录名为app.jar的jar包到容器内 (根据你的实际情况调整)
COPY ./app.jar /tmp/app.jar
#暴露容器端口为8999 Docker镜像告知Docker宿主机应用监听了8999端口 (根据你的实际情况调整)
EXPOSE 8999
#容器启动时执行的命令 java -jar
ENTRYPOINT java -jar /tmp/app.jar

以上就是一个最基础最简单的dockerFile文件示例,详细的语法可通过 Docker Dockerfile | 菜鸟教程 学习

生成Docker镜像

将你的dockerFile与jar包上传至服务器同一目录后执行命令

#docker build
# . 表示当前目录 -f 参数指定Dockerfile文件 -t 表示 制作的镜像:tag
docker build -f ./dockerFile -t mrzhang/mrzhangutil:1.0.0 .

如果你本身没有jdk的镜像,需要等待docker自动拉取,需要些时间

如果已有那生成速度还是挺快的,一两分钟就能完成,执行过程中如果没有报错,基本就生成成功了

接下来我们可以通过docker images 来查看Docker镜像是否正确生成

运行容器

通过命令使用镜像运行容器

#-d 表示后台运行容器 ,-p表示将宿主机的8999端口映射到容器中的8999端口
docker run -d -p 8999:8999 mrzhang/mrzhangutil:1.0.0

然后我们就可以通过docker ps -a 来查看我们的容器了

日志查看

我们可以通过docker logs CONTAINER ID 来查看我们的容器日志,如下图

docker logs 的详细用法,可以通过 Docker logs 命令 | 菜鸟教程 来学习

结尾

本文简单说明了如何将jar包通过docker方式部署的方式,当然这是通过命令的方式进行配置与使用的,你也可以通过各种docker可视化管理工具来实现,会更加便捷且易于管理。

自有Jar包生成Docker镜像的更多相关文章

  1. 使用jar包格式化Docker 容器日志

    前面使用JS格式化textarea中的日志内容,但局限于JS语言性能,在日志内容较多时效率无法接受,建议日志内容大于5000行时转投本java程序,文末提供jar包下载. LogsFormat.jav ...

  2. 可运行jar包生成步骤和jar包的生成

    一.可运行jar包生成步骤 1.进入.class文件所在目录,新建一个记事本文件,假设为1.txt,文件内容: 1> Main-Class:可运行类的名字  (  例如:Main-Class:T ...

  3. jenkins自动打包生成docker镜像后自动发布并nginx代理访问

    之前曾写过docker及jenkins基础使用  https://www.cnblogs.com/xiaochangwei/category/816943.html 现在搭建环境的功能为: 1.jen ...

  4. Maven插件Jib配合Harbor生成Docker镜像

    1 说明 Maven插件Jib暂不支持https的自签名,因此只能配置以Http的方式访问Harbor私有仓库 以下基于SpringBoot2.x进行配置 2 Maven配置 2.1 pom.xml中 ...

  5. 如何使用dockerfile将jar包生成镜像

    1.编写dockersfile FROM java:8 ADD SPRINGCLOUD.jar app.jar RUN bash -c ‘touch /app.jar’ ENTRYPOINT [&qu ...

  6. docker把web jar包制作成镜像

    1.新建一个spring boot项目 并使用maven打成jar包,放到linux(centos7)环境上. 运行 java -jar hello.jar  后结果如下(这里项目对外提供的端口是90 ...

  7. 使用maven插件dockerfile-maven-plugin生成Docker镜像并推送到镜像仓库

    1.引入maven插件 <build> <plugins> <plugin> <groupId>com.spotify</groupId> ...

  8. (转)通过maven,给没有pom文件的jar包生成pom文件,maven项目引入本地jar包

    文章完全转载自 : https://blog.csdn.net/qq_31289187/article/details/81117478 问题一: 经常遇到公司私服或者中央仓库没有的jar包,然后通过 ...

  9. asp.net core webapi 使用ef 对mysql进行增删改查,并生成Docker镜像构建容器运行

    1.构建运行mysql容器,添加数据库user 参考Docker创建运行多个mysql容器,地址 http://www.cnblogs.com/heyangyi/p/9288402.html 添加us ...

  10. jar包生成exe可执行程序

    1.生成工具EXE4J下载链接:https://www.ej-technologies.com/download/exe4j/files 2.安装.使用:https://blog.csdn.net/h ...

随机推荐

  1. CSS – Variables

    参考: Youtube – CSS Variables - CSS vs Sass - variables inside media queries Why we prefer CSS Custom ...

  2. Figma 学习笔记 – Frame

    Frame = <div> Frame 就类似 HTML 中的 div, 它和形状 rectangle 特性上蛮相识的, 但是使用场景其实差很多, 所以不要搞错哦. (除了图片很少会用到 ...

  3. GPUStack 0.2:开箱即用的分布式推理、CPU推理和调度策略

    GPUStack 是一个专为运行大语言模型(LLM)设计的开源 GPU 集群管理器,旨在支持基于任何品牌的异构 GPU 构建统一管理的算力集群,无论这些 GPU 运行在 Apple Mac.Windo ...

  4. SpringMVC——SSM整合-异常处理器

    异常处理器 出现异常的常见位置与常见诱因: 框架内部抛出的异常:因使用不合规导致 数据层抛出异常:因外部服务器故障导致(例如:服务器访问超时) 业务层抛出的异常:因业务逻辑书写错误导致(例如:遍历业务 ...

  5. 【赵渝强老师】MongoDB管理用户的认证机制

    一.MongoDB用户认证机制简介 为了认证客户端,你必须要添加一个对应的用户到MongoDB.基本的步骤分为以下几步: 用户管理接口:db.createUser()方法可以创建一个用户,添加完成后可 ...

  6. Android Qcom USB Driver学习(一)

    该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) USB接口类型 Android终端上常用的USB接口:TypeC(现在的主流),MicroB(以前的设备) ...

  7. 进程管理中的active_mm是做什么的?

    在Linux内核中,进程管理涉及到许多复杂的数据结构和机制,其中active_mm是与内存管理相关的一个关键概念.理解active_mm需要先了解与之相关的一些基本内核结构和概念. 基本概念 mm_s ...

  8. Kernel调试追踪技术之 Kprobe on ARM64

    kprobe是什么? kprobe 是一种动态调试机制,用于debugging,动态跟踪,性能分析,动态修改内核行为等,2004年由IBM发布,是名为Dprobes工具集的底层实现机制[1][2],2 ...

  9. 2022年最新数据库经典面试题及答案汇总(含PostgreSQL、Oracle、MySQL)

    随着企业数字化需求的增加,数据库行业发展日益壮大,企业对DBA岗位的需求也处于逐步增加中.我们梳理了墨天轮平台上2022年最新的一批数据库经典面试题,主要包含PostgreSQL.MySQL和Orac ...

  10. Excel读写之xlrd模块

    1.1.xlrd模块介绍 xlrd:用于读取Excle数据文件将返回的数据对象放到内存中,然后查询数据文件对象的相关信息. xlwt:用于在内存中生成新的数据文件对象,处理完成后写入到Excel数据文 ...