使用docker部署springboot项目小白教程

简介: 使用docker部署springboot项目小白教程
一,创建springboot项目

大家随意创建一个 springboot 项目就行了,这里给大家展示一个半成品,稍后可以去gitee上下载源码。自己创建的话勾选 web 这个依赖即可。然后在本地测试一下自己写的接口,如果没问题,就可以发布了

二,在对自己的项目进行打包

1,找到右下角的Maven Projects,进行如下步骤


2,说说这里面打包项目的坑,可能会遇到如下错误

Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0...

解决方案:

修改maven-resources-plugin的版本,如下。在进行以上步骤,代码就能进行打包了

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
            <!--在这里修改版本-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.4.3</version>
            </plugin>
        </plugins>
    </build>

3,最后控制台出现如下,则打包完成

,4,也可以在这个target目录下发现jar包已经存在了

三,测试jar包

1,通过如下找到jar包的位置

2,打开后,文件夹中cmd打开命令行提示符

3,输入java -jar jar包名称,可以发现本地也能跑,说明jar包没问题,那就放心的放到服务器上了

四,idea安装及使用dcoker

1,找到设置,下载dcoker插件即可

2,安装成功的话,新建Dockerfile文件,可以发现出现高亮

3,编写Dockerfile文件

#版本为java8
FROM java:8
#将所有jar包复制
COPY *.jar /app.jar
#服务端口号
CMD ["--server.port=8080"]
#向外面暴露的端口
EXPOSE 8080
#容器启动的时候运行的命令
ENTRYPOINT ["java","-jar","/app.jar"]

4,使用xftp将Dockerfile文件 和生成 jar 的包传输到linux下,我这边用的是阿里云服务器

5,在服务器下的 /home 目路下新建一个 /idea 目录,将传输的文件移动到该目录下即可

2021012216560721.png

6,创建一个容器,最后面是有一个点的

docker build -t zhenghuisheng .

7,在构建成功之后,可以发现这个 Dockerfile 的文件也执行了

8,查看构建的镜像,已经在里面了

docker images

五,部署项目

1,运行构建的镜像

docker run -d -p 8080:8080 --name springboot_web zhenghuisheng

解释一下

-d :以后台方式交互运行
-p :暴露端口号第一个8080是暴露linux 的端口号,这样外部才能连接linux
       第二个端口号暴露的是容器的端口号,这样linux才能连接容器
       这样外部就能通过服务器访问容器了
--name : 给容器命名,可以通过docker ps下查询,名字随意
zhenghuisheng : 上面构建镜像的名称

2,查看当前容器是否在运行,

docker ps

可以发现已经在运行了

3,测试能否连通,上一步可以发现一个ports 端口号,于是curl测试一下

4,curl 测试

curl 0.0.0.0:8080

出现一下界面,测试成功

5,浏览器访问一下,输入服务器外网ip + linux暴露的端口号8080

6,如果没有出现以上界面,那么就有以下可能

没有关闭防火墙,没有在阿里云服务器开放端口

具体详情可以参照另一篇博客:https://blog.csdn.net/zhenghuishengq/article/details/112868488

里面有许多踩坑以及脱坑的事例

7,可以发现已经到了我项目的登录界面了。本来想发这个项目到gitee的,想想还是算了

六,总结

由于我这个是在web上进行了部署,很多人肯定是想问为什么不需要部署 tomcat 环境的,当时我也有过此疑问,为什么不需要呢?后来才想明白,我们用的是springboot项目,里面自带了 tomcat 。

因此到这里,我们的项目就算是部署成功了,欢迎留言!

相关文章
|
1天前
|
关系型数据库 MySQL Java
腾讯云服务器的使用、服务器中使用Docker安装常见的软件、如何将一个项目发布到服务器
这篇文章介绍了在腾讯云服务器上使用Docker安装常见软件的过程,包括安装MySQL、Redis和Tomcat,并提供了解决连接问题的方法。同时,还涉及了服务器中安装JDK 1.8的步骤和如何将项目打包部署到服务器上的指导,包括注意事项和操作提示。
腾讯云服务器的使用、服务器中使用Docker安装常见的软件、如何将一个项目发布到服务器
|
1天前
|
JavaScript Java Maven
毕设项目&课程设计&毕设项目:springboot+vue实现的在线求职管理平台(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和Vue.js实现的在线求职平台。该平台采用了前后端分离的架构,使用Spring Boot作为后端服务
毕设项目&课程设计&毕设项目:springboot+vue实现的在线求职管理平台(含教程&源码&数据库数据)
|
4天前
|
前端开发 数据库
SpringBoot+Vue+token实现(表单+图片)上传、图片地址保存到数据库。上传图片保存位置到项目中的静态资源下、图片可以在前端回显(二))
这篇文章是关于如何在SpringBoot+Vue+token的环境下实现表单和图片上传的优化篇,主要改进是将图片保存位置从磁盘指定位置改为项目中的静态资源目录,使得图片资源可以跨环境访问,并在前端正确回显。
|
4天前
|
Java 关系型数据库 MySQL
1、Mybatis-Plus 创建SpringBoot项目
这篇文章是关于如何创建一个SpringBoot项目,包括在`pom.xml`文件中引入依赖、在`application.yml`文件中配置数据库连接,以及加入日志功能的详细步骤和示例代码。
|
5天前
|
Java Maven
构建Springboot项目、实现简单的输出功能、将项目打包成可以执行的JAR包(详细图解过程)
这篇文章详细介绍了构建SpringBoot项目的过程,包括新建工程、选择环境配置、添加依赖、项目结构说明,并演示了如何编写一个简单的Controller控制器实现输出功能,最后讲解了如何使用Maven将项目打包成可执行的JAR包,并提供了运行JAR包的命令和测试效果。
构建Springboot项目、实现简单的输出功能、将项目打包成可以执行的JAR包(详细图解过程)
|
5天前
|
SQL 前端开发 Java
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
这篇文章介绍了如何在IntelliJ IDEA中使用Maven将Spring Boot项目打包成可运行的jar包,并提供了运行jar包的方法。同时,还讨论了如何解决jar包冲突问题,并提供了在IDEA中同时启动Vue前端项目和Spring Boot后端项目的步骤。
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
|
5天前
|
XML Java Maven
logback在springBoot项目中的使用 springboot中使用日志进行持久化保存日志信息
这篇文章详细介绍了如何在Spring Boot项目中使用logback进行日志记录,包括Maven依赖配置、logback配置文件的编写,以及实现的日志持久化和控制台输出效果。
logback在springBoot项目中的使用 springboot中使用日志进行持久化保存日志信息
|
5天前
|
druid Java 数据库连接
SpringBoot项目整合MybatisPlus持久层框架+Druid数据库连接池,以及实现增删改查功能
SpringBoot项目整合MybatisPlus和Druid数据库连接池,实现基本的增删改查功能。
19 0
|
5天前
|
SQL JavaScript 前端开发
vue中使用分页组件、将从数据库中查询出来的数据分页展示(前后端分离SpringBoot+Vue)
这篇文章详细介绍了如何在Vue.js中使用分页组件展示从数据库查询出来的数据,包括前端Vue页面的表格和分页组件代码,以及后端SpringBoot的控制层和SQL查询语句。
vue中使用分页组件、将从数据库中查询出来的数据分页展示(前后端分离SpringBoot+Vue)
|
1天前
|
Java 微服务 Spring
SpringBoot+Vue+Spring Cloud Alibaba 实现大型电商系统【分布式微服务实现】
文章介绍了如何利用Spring Cloud Alibaba快速构建大型电商系统的分布式微服务,包括服务限流降级等主要功能的实现,并通过注解和配置简化了Spring Cloud应用的接入和搭建过程。
SpringBoot+Vue+Spring Cloud Alibaba 实现大型电商系统【分布式微服务实现】