自有Jar包生成Docker镜像
前言
经常会有些自己写的一些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镜像的更多相关文章
- 使用jar包格式化Docker 容器日志
前面使用JS格式化textarea中的日志内容,但局限于JS语言性能,在日志内容较多时效率无法接受,建议日志内容大于5000行时转投本java程序,文末提供jar包下载. LogsFormat.jav ...
- 可运行jar包生成步骤和jar包的生成
一.可运行jar包生成步骤 1.进入.class文件所在目录,新建一个记事本文件,假设为1.txt,文件内容: 1> Main-Class:可运行类的名字 ( 例如:Main-Class:T ...
- jenkins自动打包生成docker镜像后自动发布并nginx代理访问
之前曾写过docker及jenkins基础使用 https://www.cnblogs.com/xiaochangwei/category/816943.html 现在搭建环境的功能为: 1.jen ...
- Maven插件Jib配合Harbor生成Docker镜像
1 说明 Maven插件Jib暂不支持https的自签名,因此只能配置以Http的方式访问Harbor私有仓库 以下基于SpringBoot2.x进行配置 2 Maven配置 2.1 pom.xml中 ...
- 如何使用dockerfile将jar包生成镜像
1.编写dockersfile FROM java:8 ADD SPRINGCLOUD.jar app.jar RUN bash -c ‘touch /app.jar’ ENTRYPOINT [&qu ...
- docker把web jar包制作成镜像
1.新建一个spring boot项目 并使用maven打成jar包,放到linux(centos7)环境上. 运行 java -jar hello.jar 后结果如下(这里项目对外提供的端口是90 ...
- 使用maven插件dockerfile-maven-plugin生成Docker镜像并推送到镜像仓库
1.引入maven插件 <build> <plugins> <plugin> <groupId>com.spotify</groupId> ...
- (转)通过maven,给没有pom文件的jar包生成pom文件,maven项目引入本地jar包
文章完全转载自 : https://blog.csdn.net/qq_31289187/article/details/81117478 问题一: 经常遇到公司私服或者中央仓库没有的jar包,然后通过 ...
- asp.net core webapi 使用ef 对mysql进行增删改查,并生成Docker镜像构建容器运行
1.构建运行mysql容器,添加数据库user 参考Docker创建运行多个mysql容器,地址 http://www.cnblogs.com/heyangyi/p/9288402.html 添加us ...
- jar包生成exe可执行程序
1.生成工具EXE4J下载链接:https://www.ej-technologies.com/download/exe4j/files 2.安装.使用:https://blog.csdn.net/h ...
随机推荐
- ASP.NET Core – Razor Pages Routing
前言 之前有提过, MVC 和 Razor Pages 最大的区别就在 Routing 上. Razor Pages 的结构是 route, page, model route match to pa ...
- Vue3.5中解构props,让父子组件通信更加丝滑
前言 在Vue3.5版本中响应式 Props 解构终于正式转正了,这个功能之前一直是试验性的.这篇文章来带你搞清楚,一个String类型的props经过解构后明明应该是一个常量了,为什么还没丢失响应式 ...
- Windows安装winget
打开GitHub链接地址:https://github.com/microsoft/winget-cli/releases 选择最新版本,点进去后 找到名为后缀名为 ".msixbundle ...
- 智能化IT运维平台建设方案,基于智和信通运维体系的高敏捷二次开发
随着企业信息进程不断加速,运维人员需要面对越来越复杂的业务和越来越多样化的用户需求,不断扩展的应用需要越来越合理的模式.越来越智能的工具来保障运维能灵活便捷.安全稳定地开展.企业网络规模的不断扩大,从 ...
- /sys/kernel/debug/binder/目录下主要节点含义
/sys/kernel/debug/binder/目录下主要节点含义 state 显示binder设备的整体状态信息 包括进程数量.线程数量.待处理事务数量等 stats 展示binder操作的统计信 ...
- 泛型dotnet
// 什么是泛型List<T> T:表示类型参数,指代任意类型 T可以是任意标识 // 编写代码时使用特殊符号替代位置类型,在实例化或使用/调用时才会进行具体类型的定义 // 特点:重用代 ...
- C++ 第二节课 结构体, 字符串 和 C语言的区分
1 #include <iostream> 2 3 using namespace std; 4 5 6 // 结构体 7 struct Stu{ 8 string name; 9 int ...
- 宝塔部署java后端项目
1. 安装插件 宝塔面板找到软件商店然后搜索 Java java项目管理安装 安装后点击设置准备安装 tomcat 2. 添加项目
- 权限控制 vue3
- 一些新奇的玩意【php篇--持续更新】
人不进步就等于退步! 接触越多的人以及事就能学到更多的东西. 以下仅为本人记录的一些新奇的东西,不喜勿喷! 1.??运算符号,在新的项目中突然发现很多红线报错,还以为是错误!看了下,是??运算的问题, ...