前言

经常会有些自己写的一些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. Angular 学习笔记 work with excel (导出 excel)

    更新: 2020-04-15 补上 read excel 先用 file reader 把文件变成 buffer 然后调用 exceljs 就可以了, 它很聪明的哦, date number, boo ...

  2. Let's Encrypt Free SSL – Certify The Web

    介绍 随着 Let's Encrypt 的普及. 现在为网站升级到 HTTPS 已经不需要付费了. Let's Encrypt 的 SSL 是免费的, 每 3 个月需要更新一次. 可以完全用 API ...

  3. 火山引擎数智平台:高性能ChatBI的技术解读和落地实践

    导读:大模型能力的发展和成熟,催生出新一代智能化 BI-- ChatBI,即通过自然语言处理(NLP)与大型语言模型(LLMs)的结合,极大简化数据分析过程,提高效率并降低分析门槛.火山引擎数智平台旗 ...

  4. 信创环境经典版SuerMap iManager ARM版部署流程

    一.环境 操作系统:银河麒麟kylin V10 CPU:鲲鹏920 SuperMap iManager 10.2.1 硬件:4H32G机器 磁盘分区格式建议如下(请严格按照如下,减少后期有用/目录资源 ...

  5. 如何判断一个网站是用的Nginx,还是Apache

    事件起因: 接手了同事移交过来的一个网站,但是不知道这个网站是用什么做代理的,于是就去网上查资料   解决办法: 打开cmd窗口,输入以下命令即可 curl --head 域名/IP 注意,--hea ...

  6. Phpstorm 插件

    Symfony Plugin - 支持 Symfony 2,3,4 ...Laravel Plugin - 支持 Laravel.env files support - 支持.env 文件BashSu ...

  7. PHP运算符优先级(摘自在线工具)

    PHP运算符优先级 结合方向 运算符 附加信息 非结合 clone new clone 和 new 左 [ array() 非结合 ++ -- 递增/递减运算符 非结合 ~ - (int) (floa ...

  8. linux中透明巨页与巨页的区别

    在Linux中,透明巨页(Transparent HugePage)和巨页(HugePage)是两种不同的内存管理技术. 透明巨页是Linux内核中的一项特性,旨在提高内存的利用率和性能.它通过将内存 ...

  9. python安装pandas+pytz

    如下图所示,在安装pandas的过程中,发现他还要安装pytz这个包.我不想等他自己下载,因为很容易出错,所以我就先下载了pytz这个包,然后安装完毕,再去安装pandas这个包. 首先呢先登录这个网 ...

  10. 什么是 DOM

    百度: DOM 定义:文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口.它是一种与平台和语言无关的应用程序接口(API),它可 ...