场景

使用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包相关推荐

  1. Dockerfile中通过ENV指定动态参数在RUN时传递参数(部署后台jar包时指定端口为例)

    场景 CentOS7中使用Dockerfile部署后台jar包: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119818808 ...

  2. CentOS中使用Dockerfile部署带websocket的SpringBoot的jar包

    场景 CentOS7中使用Dockerfile部署后台jar包: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119818808 ...

  3. Docker中使用Dockerfile定制化jar启动时:at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)

    场景 CentOS7中使用Dockerfile部署后台jar包: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119818808 ...

  4. SpringBoot中文件下载、拦截器、war包部署、jar包部署

    3. SpringBoot中文件下载 将可以被下载资源放在磁盘的 D:\springbootcodes\springboot_day6\download 路径 这里我们使用jsp开发 引入依赖使tom ...

  5. CentOS中使用Dockerfile部署初始化sql文件的mysql

    场景 Docker中部署mysql数据库: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99213563 CentOS中使用Do ...

  6. IDEA导入Gradle项目后,重现构建项目并导入jar包后但是External Libraries目录中无任何引入的jar包

    问题描述:IDEA导入Gradle项目后,重现构建项目并导入jar包后但是External Libraries目录中无任何引入的jar包,并且后台报"java.lang.AbstractMe ...

  7. 手动部署java jar包

    手动部署java jar包 出现的问题 使用说明 使用步骤 注意事项 脚本内容 出现的问题 项目开发或者部署过程中,开发人员总是因为启动命令的错误,导致启动参数不对,或者环境不对的情况,根据此种情况, ...

  8. 打包部署时jar包和war包的区别

    springboot打成jar包时,pom文件里有一些tomcat的jar包引用,就是spring boot内置的tomcat, 打war包时,需要注释掉这些tomcat的引用 maven的三种项目打 ...

  9. 反向安装jar包到本地仓库和清除本地仓库中未下载成功的jar包

    反向安装到本地的命令 mvn install:install-file -DgroupId=com.wondersgroup -DartifactId=ssoclient -Dversion=1.2. ...

最新文章

  1. linux规则及别名设置
  2. python sqlite3更新数据,python sqlite3-使用f字符串更新数据库函数
  3. 美国人用什么android手机,美国人最爱的安卓手机:多年稳居榜首,与iPhone共分一杯羹...
  4. 微信小程序uni.switchTab传参获取不到;小程序跳转到tabBar页并传参;uni-app微信小程序获取tabBar页面参数失败;uni-app微信小程序tabBar页面onLoad不执行
  5. 用matlab画图将原点显示,[转帖] Matlab plot画图时,让原点在图中心
  6. 电商美工怎么做促销海报,才让内容更有吸引力?看看这些大咖都在学习的优秀素材模板!
  7. oracle查询结果怎么去掉重复的,怎么去除重复的查询结果
  8. 【SD自动记账】SD与FI的集成部分
  9. 6章7街构造函数和解析函数
  10. mac修改终端字体样式和大小
  11. IP对亚马逊测评自养号有多重要?
  12. python怎么利用数据成像_第一张黑洞照片全靠VLBI,这个Github项目教你用Python实现...
  13. 安卓开发笔记(八)—— 王者荣耀英雄大全 数据库部分
  14. wmm的学习日记(XSS跨站脚本漏洞)
  15. 现代控制理论1——前期理论体系
  16. [转载]逆向工程不是炫耀者用来装B的工具
  17. python矩阵运算法则_导数与梯度、矩阵运算性质、科学计算库numpy
  18. html5文字特效教程视频,IT兄弟连 HTML5教程 CSS3属性特效 自定义文字
  19. 2019年全网最全的新手SEO教程
  20. 计算机在建筑领域的应用,计算机技术在建筑工程领域的应用

热门文章

  1. Python 安装第三方模块
  2. nn.BCELoss与nn.CrossEntropyLoss的区别
  3. linux——文件权限的更改与管理
  4. Java强引用、软引用、弱引用、虚引用的区别
  5. centos7服务器搭建elasticsearch7.6.0集群
  6. Redis 的缓存异常处理 —— 缓存雪崩、缓存击穿、缓存穿透
  7. 快速排序法(思想及代码实现)
  8. 「后端小伙伴来学前端了」Vue中全局事件总线(GlobalEventBus)原理及探究过程
  9. 没有与这些操作数【】匹配的运算符_[02]java数据类型和运算符等知识
  10. java链式栈_Java栈之链式栈存储结构实现