前言

经常会有些自己写的一些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 – RWD (Responsive Web Design) 概念篇

    介绍 Only PC 以前是没有手机的, 只有电脑, 所以做开发, 只需要开发电脑版本就可以了. Mobile Version 后来手机诞生, 有钱的公司就做两个版本, 一个手机版, 一个电脑版. 没 ...

  2. 记一次 公司.NET项目部署在Linux环境压测时 内存暴涨分析

    一:背景 讲故事 公司部署在某碟上的项目在9月份压测50并发时,发现某个容器线程.内存非正常的上涨,导致功能出现了异常无法使用.根据所学,自己分析了下线程和内存问题,分析时可以使用lldb或者wind ...

  3. Serilog文档翻译系列(七) - 应用设置、调试和诊断、开发接收器

    01.应用设置 Serilog 支持在 App.config 和 Web.config 文件中使用简单的 配置语法,以设置最低日志级别.为事件添加额外属性以及控制日志输出. Serilog 主要通过代 ...

  4. Java日期时间API系列31-----Jdk8中java.time包中的新的日期时间API类,时间戳的获取方式对比、转换和使用。

    时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到.Java中本来已经有相关获取时间戳的方法,Java8后增加新的类In ...

  5. 2024年9月中国数据库排行榜:openGauss系多点开花,根社区优势明显

    在墨天轮发布的9月中国数据库流行度排行榜中,中国数据库产业格局进一步聚集刷新,呈现出3大显著特征: 开源势力力争上游显优势领先潮流: openGauss 开源根社区优势明显: 阿里华为两极鼎立云上云下 ...

  6. 墨天轮最受DBA欢迎的数据库技术文档-故障处理案例篇

    在之前发布的<墨天轮最受欢迎的技术文档-容灾备份篇>中,大家说想看故障处理案例篇的内容,这不!编辑部快马加鞭给大家整理来了,希望能够帮助到大家. 数据库故障可能出现在内存.网络.CPU.硬 ...

  7. ios中文件夹文件的创建和删除

    //1.文件夹.文件的创建和删除 NSFileManager *fileManager=[NSFileManager defaultManager]; NSString *filePath=@&quo ...

  8. js实现控制音乐播放

    js实现控制音乐播放 用js实现控制音乐播放其实很简单,但是第一次去做可能会遇到一点点小问题. 比如说我自己,第一次想实现一个播放器效果,然后在网上搜寻半天照着自己的理解写下如下代码:  <!D ...

  9. 神经网络之卷积篇:详解残差网络(ResNets)(Residual Networks (ResNets))

    详解残差网络 ResNets是由残差块(Residual block)构建的,首先解释一下什么是残差块. 这是一个两层神经网络,在\(L\)层进行激活,得到\(a^{\left\lbrack l + ...

  10. Tailwind CSS:最受欢迎的实用类CSS框架!Github Star达到了惊人的82.5K!

    在前端开发的世界中,随着项目的复杂性增加,如何高效管理样式,快速开发出响应式.美观的界面成为每个开发者关心的问题.Tailwind CSS 作为一个革命性的实用类(utility-first)CSS ...