首页 > 系统相关 >CentOS7中使用Dockerfile部署后台jar包

CentOS7中使用Dockerfile部署后台jar包

时间:2023-02-15 11:06:31浏览次数:49  
标签:容器 badao jar CentOS7 镜像 docker Dockerfile


场景

使用Dockerfile定制镜像来部署Tomcat项目

在上面使用Tomcat部署项目之外,还可以使用Dockfile基于openjdk部署jar包项目。

注:

关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

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

CentOS7中使用Dockerfile部署后台jar包_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 .

注意这里的镜像名 不能有大写,后面还有一个点

CentOS7中使用Dockerfile部署后台jar包_Dockerfile_02

注意:

-t代表目标镜像名

.代表Dockerfile文件路径

如果需要删除旧的镜像

docker rmi 镜像名

构建成功后可以通过

docker images

看到自己构建的镜像

6、运行构建的badaoimage镜像

docker run -d -p 9090:9090 badaoimage

然后查看运行中的容器

docker ps

并且在浏览器中访问get接口成功。

CentOS7中使用Dockerfile部署后台jar包_jar_03

 

并且查看容器运行的输出日志

docker logs -f 容器ID

CentOS7中使用Dockerfile部署后台jar包_Dockerfile_04

 

标签:容器,badao,jar,CentOS7,镜像,docker,Dockerfile
From: https://blog.51cto.com/BADAOLIUMANGQZ/6058740

相关文章

  • CentOS中使用Dockerfile部署带websocket的SpringBoot的jar包
    场景CentOS7中使用Dockerfile部署后台jar包在上面使用Dockerfile定制的镜像部署了一个普通的jar包, 如果是jar包里面包含websocket的使用,流程也是一样。websocket所使用的......
  • CentOS中使用Dockerfile部署初始化sql文件的mysql
    场景Docker中部署mysql数据库CentOS中使用Dockerfile部署带websocket的SpringBoot的jar包在上面部署Mysql镜像和会使用Dockerfile的基础上。如果要实现定制化一个mysql镜像,......
  • CentOS7中解压tar包的方式安装Nginx
    场景CentOS中怎样安装、配置、启动Nginx:​​CentOS中怎样安装、配置、启动Nginx_BADAO_LIUMANG_QIZHI的博客-博客_centos怎么启动nginx​​上面实现安装nginx的过程简化一下......
  • CentOS7中通过二进制文件与配置环境变量的方式安装Node
    场景Node官网下载地址:​​Download|Node.js​​下载64位二进制文件。注:博客:​​BADAO_LIUMANG_QIZHI的博客_霸道流氓气质_博客-C#,SpringBoot,架构之路领域博主​​关注......
  • eclipse 快速lib目录下jar包批量导入项目
    1.情景展示在实际开发过程中,尤其是:非maven管理jar包的老项目,我们往往会遇到这样的情况:从svn或者git上下载下来的JavaWeb项目,lib目录下的jar包总是没有全部构建到项目当中:如......
  • CentOS7中通过npm的方式安装Node-RED
    场景Node-RED简介与Windows上安装、启动和运行示例:​​Node-RED简介与Windows上安装、启动和运行示例_BADAO_LIUMANG_QIZHI的博客上面是在Windows上安装node-red,如果要在Ce......
  • CentOS7中后台运行Node-RED(关闭窗口也能访问服务)
    场景CentOS7中通过npm的方式安装Node-RED:​​CentOS7中通过npm的方式安装Node-RED-霸道流氓​​CentOS7中通过npm的方式安装Node-RED_BADAO_LIUMANG_QIZHI的博客​上面运......
  • CentOS7中使用PM2设置Node-RED开机自启动
    场景CentOS7中后台运行Node-RED(关闭窗口也能访问服务):​​CentOS7中后台运行Node-RED(关闭窗口也能访问服务)_BADAO_LIUMANG_QIZHI的博客在上面设置Node-RED后台启动后怎样......
  • CentOS7中使用编译github源码方式离线安装Node-RED
    场景Windows上编译github源码方式运行Node-RED,以及离线迁移安装Node-RED:​​Windows上编译github源码方式运行Node-RED,以及离线迁移安装Node-RED_BADAO_LIUMANG_QIZHI的博......
  • Go代码基于dockerfile做成镜像
    一、基础环境安装与初始化#手动执行步骤yuminstallgo-y#将go代码拷贝进入机器#初始化go项目[root@mobantest]#pwd/root/test#下载模块[root@mobantest......