使用Dockerfile部署springboot项目 (入门级教程 简单易懂)

简介: 以前我们部署项目打包->传到服务器->java -jar运行而且服务器还得先配置好java运行环境

以前我们部署项目


打包->传到服务器->java -jar运行


而且服务器还得先配置好java运行环境


现在,使用docker部署项目,只需要在项目中编写一个Dockerfile文件


在项目中创建一个Dockerfile文件,我这里就放到项目根路径下


那么Dockerfile改如何编写呢?下方命令中黑体部分是固定写法


首先第一步jar包运行肯定需要一个运行环境

FROM openjdk:8-jdk-slim


这个from后面怎么写,比如我现在用的java8,到docker hub网站中搜索jdk,点击第一个java进去,在tags标签页下面搜索8-jdk,找到一个linux的jdk,复制下面选中的这一块就可以



第二步写上作者

LABEL maintainer=vhukze


第三步复制jar包

大家都知道在docker中运行容器,本身是运行了小的linux系统。要运行这个jar包,linux中就得有这个jar包,使用copy命令把jar包复制到一个自定义路径下


我的Dockerfile文件放到了项目根路径下,跟target目录平级


COPY target/*.jar /main.jar


target目录下也就一个jar包,直接写*.jar,把jar包复制到了小linux中根路径下,名称为main.jar


第四步启动命令

上面复制完之后名称为main.jar,所以这里启动命令也是启动mian.jar


ENTRYPOINT ["java","-jar","/main.jar"]


构建镜像并启动

至此一个最简单的Dockerfile文件就编写完成了


全部内容如下


FROM openjdk:8-jdk-slim

LABEL maintainer=vhukze

COPY target/*.jar /main.jar

ENTRYPOINT ["java","-jar","/main.jar"]

接下来需要根据这个Dockerfile打包镜像


一般我们自己开发用的Windows电脑都没有安装docker,就需要把target文件夹和Dockerfile文件上传到安装好docker的服务器,在服务器上使用docker构建镜像


我这里在/usr/local下面创建了一个app文件夹



把target文件夹和Dockerfile文件上传到这里,target文件夹中只需要有一个jar包就行,其他文件都可以删掉


在这个目录执行下面命令


docker build -t java-test:v1.0 -f Dockerfile .


-t 后面是镜像名称和版本号


-f 是使用哪个Dockerfile文件,当前目录就有Dockerfile文件,所以这个参数也可以省略不写


命令最后有一个点(.),这个点表示在当前目录下工作(就是COPY命令在复制的时候以当前目录为基准,把当前目录下target文件夹中的所有jar包复制到容器的小Linux下)


执行命令后,等待构建完成



docker images查看镜像是否存在



启动容器 -d后台启动 -p使用8888端口并映射到主机8888端口


docker run -d -p 8888:8888 java-test:v1.0


等他启动完成,就可以访问了


启动好之后如果想查看运行日志


docker logs 容器ID


如果想在另一个服务器也部署一遍这个项目,应该怎么操作,当然不用再重复上面的操作,请移步下篇博文:docker<应用分享>--本地镜像上传dockerhub、从dockerhub拉取镜像


相关文章
|
8天前
|
Java 应用服务中间件 Maven
如何将 Spring Boot 应用程序部署为 WAR?
如何将 Spring Boot 应用程序部署为 WAR?
31 1
|
26天前
|
Java 应用服务中间件
SpringBoot获取项目文件的绝对路径和相对路径
SpringBoot获取项目文件的绝对路径和相对路径
63 1
SpringBoot获取项目文件的绝对路径和相对路径
|
17天前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
30 2
|
21天前
|
分布式计算 关系型数据库 MySQL
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
37 8
|
28天前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
44 2
|
28天前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
38 1
|
12天前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
30 0
|
前端开发 JavaScript 关系型数据库
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
3283 2
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
|
6月前
|
Java Maven
springboot项目打jar包后,如何部署到服务器
springboot项目打jar包后,如何部署到服务器
440 1
|
7月前
|
Java 关系型数据库 MySQL
保姆级教程——将springboot项目部署到阿里云服务器包含环境配置(小白包会)
本文档详细介绍了将SpringBoot项目部署到阿里云服务器的步骤。首先,通过Xshell连接服务器,使用公网IP地址。接着,下载JDK的Linux版本,使用XFTP上传并解压,配置环境变量。然后,安装MySQL 5.7,包括下载YUM源、安装、启动服务以及修改root密码和开启远程访问。最后,将SpringBoot项目打包成jar,上传至服务器,使用`java -jar`命令运行,通过`nohup`确保服务持续运行。配置安全组以允许远程访问。
1070 0