使用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拉取镜像


相关文章
|
6天前
|
Java 应用服务中间件 Maven
Spring Boot项目打war包(idea:多种方式)
Spring Boot项目打war包(idea:多种方式)
25 1
|
5天前
|
Java Maven
SpringBoot项目的用maven插件打包报Test错误
SpringBoot项目的用maven插件打包报Test错误
|
4天前
|
前端开发 JavaScript Java
Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)五(前端页面
Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)五(前端页面
Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)五(前端页面
|
6天前
|
消息中间件 JSON Java
RabbitMQ的springboot项目集成使用-01
RabbitMQ的springboot项目集成使用-01
|
6天前
|
关系型数据库 Java 数据库
docker部署postgresql数据库和整合springboot连接数据源
docker部署postgresql数据库和整合springboot连接数据源
22 0
|
6天前
|
Java
springboot项目出现Exception in thread “main“ java.lang.NoClassDefFoundError: javax/servlet/Filter
springboot项目出现Exception in thread “main“ java.lang.NoClassDefFoundError: javax/servlet/Filter
17 0
|
6天前
|
Java Spring
Spring boot项目如何发送邮件
Spring boot项目如何发送邮件
20 2
|
6天前
|
Java 关系型数据库 MySQL
保姆级教程——将springboot项目部署到阿里云服务器包含环境配置(小白包会)
本文档详细介绍了将SpringBoot项目部署到阿里云服务器的步骤。首先,通过Xshell连接服务器,使用公网IP地址。接着,下载JDK的Linux版本,使用XFTP上传并解压,配置环境变量。然后,安装MySQL 5.7,包括下载YUM源、安装、启动服务以及修改root密码和开启远程访问。最后,将SpringBoot项目打包成jar,上传至服务器,使用`java -jar`命令运行,通过`nohup`确保服务持续运行。配置安全组以允许远程访问。
|
前端开发 JavaScript 关系型数据库
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
2529 2
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
|
9月前
|
JavaScript 前端开发 Java
SpringBoot + Vue 前后端分离项目部署到服务器上
SpringBoot + Vue 前后端分离项目部署到服务器上
482 0