CentOS7中使用Dockerfile部署后台jar包
场景
使用Dockerfile定制镜像来部署Tomcat项目:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99105626
在上面使用Tomcat部署项目之外,还可以使用Dockfile基于openjdk部署jar包项目。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
1、新建SpringBoot项目,使用基本的web项目模板,然后添加一个get接口.
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/badao")
public class DemoController {@GetMapping("/list")public String list(){System.out.println("公众号:霸道的程序猿");return "公众号:霸道的程序猿";}
}
2、将此服务打成一个jar包,命名为badao.jar,并将次jar包上传到CentOS服务器上
在根目录下新建目录
cd /
mkdir dockerfiledemo
然后将上面的badao.jar上传到该目录下,在此目录下新建Dockerfile文件
vi Dockerfile
然后将此文件的内容修改为:
FROM openjdk:8-jdk-alpine
MAINTAINER "badaodechengxvyuan"
LABEL description="公众号-霸道的程序猿"
WORKDIR app
ADD badao.jar /app/badao.jar
EXPOSE 9090
CMD java -jar /app/badao.jar
3、Dockerfile命令说明
FROM:指定基础镜像,必须为第一个命令
MAINTAINER: 维护者信息
LABEL:用于为镜像添加元数据
ADD:将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget
COPY:功能类似ADD,但是是不会自动解压文件,也不能访问网络资源
WORKDIR:工作目录,类似于cd命令
RUN:构建镜像时执行的命令
CMD:构建容器后调用,也就是在容器启动时才进行调用。
ENTRYPOINT:配置容器,使其可执行化。配合CMD可省去"application",只使用参数。
ENV:设置环境变量
EXPOSE:指定于外界交互的端口
VOLUME:用于指定持久化目录
ARG:用于指定传递给构建运行时的变量
USER:指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户。使用USER指定用户时,可以使用用户名、UID或GID,或是两者的组合。当服务不需要管理员权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户
ONBUILD:用于设置镜像触发器
4、上面的Dockerfile文件的意思
以openjdk为基础镜像
设置工作目录为app目录
将当前本地目录下badao.jar添加到容器add目录下
暴露9090端口
cmd运行命令启动jar包。
5、编译Dockerfile文件生成Docker镜像
docker build -t badaoimage .
注意这里的镜像名 不能有大写,后面还有一个点
注意:
-t代表目标镜像名
.代表Dockerfile文件路径
如果需要删除旧的镜像
docker rmi 镜像名
构建成功后可以通过
docker images
看到自己构建的镜像
6、运行构建的badaoimage镜像
docker run -d -p 9090:9090 badaoimage
然后查看运行中的容器
docker ps
并且在浏览器中访问get接口成功。
并且查看容器运行的输出日志
docker logs -f 容器ID
CentOS7中使用Dockerfile部署后台jar包相关推荐
- Dockerfile中通过ENV指定动态参数在RUN时传递参数(部署后台jar包时指定端口为例)
场景 CentOS7中使用Dockerfile部署后台jar包: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119818808 ...
- CentOS中使用Dockerfile部署带websocket的SpringBoot的jar包
场景 CentOS7中使用Dockerfile部署后台jar包: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119818808 ...
- Docker中使用Dockerfile定制化jar启动时:at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)
场景 CentOS7中使用Dockerfile部署后台jar包: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119818808 ...
- SpringBoot中文件下载、拦截器、war包部署、jar包部署
3. SpringBoot中文件下载 将可以被下载资源放在磁盘的 D:\springbootcodes\springboot_day6\download 路径 这里我们使用jsp开发 引入依赖使tom ...
- CentOS中使用Dockerfile部署初始化sql文件的mysql
场景 Docker中部署mysql数据库: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99213563 CentOS中使用Do ...
- IDEA导入Gradle项目后,重现构建项目并导入jar包后但是External Libraries目录中无任何引入的jar包
问题描述:IDEA导入Gradle项目后,重现构建项目并导入jar包后但是External Libraries目录中无任何引入的jar包,并且后台报"java.lang.AbstractMe ...
- 手动部署java jar包
手动部署java jar包 出现的问题 使用说明 使用步骤 注意事项 脚本内容 出现的问题 项目开发或者部署过程中,开发人员总是因为启动命令的错误,导致启动参数不对,或者环境不对的情况,根据此种情况, ...
- 打包部署时jar包和war包的区别
springboot打成jar包时,pom文件里有一些tomcat的jar包引用,就是spring boot内置的tomcat, 打war包时,需要注释掉这些tomcat的引用 maven的三种项目打 ...
- 反向安装jar包到本地仓库和清除本地仓库中未下载成功的jar包
反向安装到本地的命令 mvn install:install-file -DgroupId=com.wondersgroup -DartifactId=ssoclient -Dversion=1.2. ...
最新文章
- linux规则及别名设置
- python sqlite3更新数据,python sqlite3-使用f字符串更新数据库函数
- 美国人用什么android手机,美国人最爱的安卓手机:多年稳居榜首,与iPhone共分一杯羹...
- 微信小程序uni.switchTab传参获取不到;小程序跳转到tabBar页并传参;uni-app微信小程序获取tabBar页面参数失败;uni-app微信小程序tabBar页面onLoad不执行
- 用matlab画图将原点显示,[转帖] Matlab plot画图时,让原点在图中心
- 电商美工怎么做促销海报,才让内容更有吸引力?看看这些大咖都在学习的优秀素材模板!
- oracle查询结果怎么去掉重复的,怎么去除重复的查询结果
- 【SD自动记账】SD与FI的集成部分
- 6章7街构造函数和解析函数
- mac修改终端字体样式和大小
- IP对亚马逊测评自养号有多重要?
- python怎么利用数据成像_第一张黑洞照片全靠VLBI,这个Github项目教你用Python实现...
- 安卓开发笔记(八)—— 王者荣耀英雄大全 数据库部分
- wmm的学习日记(XSS跨站脚本漏洞)
- 现代控制理论1——前期理论体系
- [转载]逆向工程不是炫耀者用来装B的工具
- python矩阵运算法则_导数与梯度、矩阵运算性质、科学计算库numpy
- html5文字特效教程视频,IT兄弟连 HTML5教程 CSS3属性特效 自定义文字
- 2019年全网最全的新手SEO教程
- 计算机在建筑领域的应用,计算机技术在建筑工程领域的应用
热门文章
- Python 安装第三方模块
- nn.BCELoss与nn.CrossEntropyLoss的区别
- linux——文件权限的更改与管理
- Java强引用、软引用、弱引用、虚引用的区别
- centos7服务器搭建elasticsearch7.6.0集群
- Redis 的缓存异常处理 —— 缓存雪崩、缓存击穿、缓存穿透
- 快速排序法(思想及代码实现)
- 「后端小伙伴来学前端了」Vue中全局事件总线(GlobalEventBus)原理及探究过程
- 没有与这些操作数【】匹配的运算符_[02]java数据类型和运算符等知识
- java链式栈_Java栈之链式栈存储结构实现