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


相关文章
|
3月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
552 5
|
5月前
|
JSON 分布式计算 大数据
springboot项目集成大数据第三方dolphinscheduler调度器
springboot项目集成大数据第三方dolphinscheduler调度器
286 3
|
5月前
|
Java 关系型数据库 数据库连接
Spring Boot项目集成MyBatis Plus操作PostgreSQL全解析
集成 Spring Boot、PostgreSQL 和 MyBatis Plus 的步骤与 MyBatis 类似,只不过在 MyBatis Plus 中提供了更多的便利功能,如自动生成 SQL、分页查询、Wrapper 查询等。
426 3
|
5月前
|
Java 关系型数据库 MySQL
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
585 2
|
5月前
|
分布式计算 Java 大数据
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
301 2
|
5月前
|
Java 测试技术 Spring
简单学Spring Boot | 博客项目的测试
本内容介绍了基于Spring Boot的博客项目测试实践,重点在于通过测试驱动开发(TDD)优化服务层代码,提升代码质量和功能可靠性。案例详细展示了如何为PostService类编写测试用例、运行测试并根据反馈优化功能代码,包括两次优化过程。通过TDD流程,确保每项功能经过严格验证,增强代码可维护性与系统稳定性。
240 0
|
5月前
|
存储 Java 数据库连接
简单学Spring Boot | 博客项目的三层架构重构
本案例通过采用三层架构(数据访问层、业务逻辑层、表现层)重构项目,解决了集中式开发导致的代码臃肿问题。各层职责清晰,结合依赖注入实现解耦,提升了系统的可维护性、可测试性和可扩展性,为后续接入真实数据库奠定基础。
430 0
|
分布式计算 大数据 Java
springboot项目集成大数据第三方dolphinscheduler调度器 执行/停止任务
springboot项目集成大数据第三方dolphinscheduler调度器 执行/停止任务
99 0
|
2月前
|
JavaScript Java 关系型数据库
基于springboot的项目管理系统
本文探讨项目管理系统在现代企业中的应用与实现,分析其研究背景、意义及现状,阐述基于SSM、Java、MySQL和Vue等技术构建系统的关键方法,展现其在提升管理效率、协同水平与风险管控方面的价值。