如何在IDE部署springboot项目(有swagger和无swagger都是一样的)到服务器或者虚拟机上的docker

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 最近写了个项目,前端还没写,需要部署到服务器给女朋友实现前端,可是不熟悉Linux的我,蹑手蹑脚,真的是每一步都是bug,可谓是步步维艰,对世界很绝望,曾经怀疑自己的服务器有问题,甚至一度怀疑是自己的DaoBan IDE有问题,历时两天一夜,终于……部署好了。

一、前言
最近写了个项目,前端还没写,需要部署到服务器给女朋友实现前端,可是不熟悉Linux的我,蹑手蹑脚,真的是每一步都是bug,可谓是步步维艰,对世界很绝望,曾经怀疑自己的服务器有问题,甚至一度怀疑是自己的DaoBan IDE有问题,历时两天一夜,终于……部署好了。

二、现在开始分享一下安装历程:
1.购买一个服务器或者安装虚拟机(有点像废话)

2.安装docker(可以使用yum安装)

tips:安装好docker之后需要配置一下,输入下面这行代码,进入docker配置文件,在ExecStart=后添加配置,远程访问docker的端口为2375
sos:如果是服务器,这个修改后需要在服务器上面再配置一下这个端口号,不然ide会识别不出端口号,很重要(这个坑踩了很久,快陷进去了)

​​​​在这里插入图片描述

1.vim /lib/systemd/system/docker.service #输入,进到这个配置文件
2.-H tcp://0.0.0.0:2375 #复制粘贴这个
3.退出编辑界面:先按esc,然后":wq"退出
4.# 重启docker
systemctl daemon-reload
systemctl restart docker
3.到了第三步,说明咱们已经配置好docker了,现在需要在docker里面拉取MySQL映像

1.docker pull mysql:8.0(本人用8.0,需要什么版本号在后面改就好)
2.docker run -itd --name mysql -p 3306:3306-e MYSQL_ROOT_PASSWORD=root mysql:8.0
tips: 这一步也有个坑,如果你在安装docker之前,本地就安装了mysql,并且端口号也是3306,那必须让它处于关闭状态,否则会造成端口号冲突,windows的navigate或者小海豚就会连接不上虚拟机的mysql

4.到这一步,虚拟机的工作做完了,回到ide中,首先修改yml文件中mysql的连接地址,ip和端口号都需要改成虚拟机的,注意密码也要改哦。
其次呢,需要在pom文件添加docker-maven-plugin插件

<plugin>
    <groupId>com.spotify</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <version>1.2.2</version>
        <configuration>
            <!-- Docker路径 -->
            <dockerHost>http://虚拟机的ip:2375(刚开始设置的docker端口号)</dockerHost>
            <!-- Dockerfile定义 -->
            <baseImage>openjdk:11</baseImage>
            <maintainer>jackie</maintainer>
            <resources>
                <resource>
                    <!-- 复制jar包到docker容器指定目录 -->
                    <targetPath>/</targetPath>
<!-- 从哪个包拷贝文件,target包 -->
                    <directory>${project.build.directory}</directory>
<!-- 拷贝哪个文件 -->
                    <include>${project.build.finalName}.jar</include>
                </resource>
            </resources>
            <workdir>/</workdir>
            <entryPoint>
               ["java", "-jar", "${project.build.finalName}.jar"]
            </entryPoint>
            <forceTags>true</forceTags>
<!-- 镜像名 -->
            <imageName>${project.artifactId}</imageName>
<!-- 镜像版本 -->
            <imageTags>
                <imageTag>${project.version}</imageTag>
            </imageTags>
        </configuration>
 </plugin>

5.打包,先后顺序。
在这里插入图片描述
6.到这一步已经加载好docker插件了,打开这个插件,点一下build,如果运行最后显示BUID SUCESS,就说明成功传输package到虚拟机了,到虚拟机查看(这里如果不成功,大概率是2375那个端口号在服务器那里没有释放)
在这里插入图片描述
7.回到虚拟机,输入命令

docker images
如果看到
在这里插入图片描述
就成功了,现在来运行这个项目输入

docker run -d -p 80:80 项目名:0.0.1-SNAPSHOT
在这里插入图片描述
-d是后台运行,-p:绑定端口号 ,前面那个80是启动这个镜像对外暴露的端口(自定),第二个80是下载的镜像的端口(原项目端口) 。

接下来,查看自己的项目是否成功,输入命令,就会出现你的项目名字了,然后可以在本地浏览器查看一下项目。

docker ps
这个就是本次痛苦的历程,这种东西真的有点烦,需要有耐心,细心去一步一步操作,希望可以帮到你,不介意的话,可以点个赞哦。

相关文章
|
2月前
|
监控 IDE Java
如何在无需重新启动服务器的情况下在 Spring Boot 上重新加载我的更改?
如何在无需重新启动服务器的情况下在 Spring Boot 上重新加载我的更改?
72 8
|
2月前
|
Java 应用服务中间件
SpringBoot获取项目文件的绝对路径和相对路径
SpringBoot获取项目文件的绝对路径和相对路径
117 1
SpringBoot获取项目文件的绝对路径和相对路径
|
2月前
|
分布式计算 关系型数据库 MySQL
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
60 8
|
2月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
50 2
|
2月前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
60 2
|
2月前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
56 1
|
2月前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
42 0
|
网络协议 测试技术 Linux
在公司的局域网内,组长让你在自己的虚拟机部署项目,大家等着访问测试,该怎么办???
1:首先推荐一篇博客吧(万分感谢,大佬们将非常实用的东西,以博客的形式记录下来,供我们这些菜鸟学习),关于vmware的三种链接方式,蛮全的,大家想仔细学的可以去看看,对你肯定有帮助,传送门,:Vmware虚拟机三种网络模式详解。
1591 0
|
2月前
|
Ubuntu 网络安全 虚拟化
VMware虚拟机ping不通原因排查及分析
下面以 VMware 虚拟机为例进行介绍。
962 3
|
2月前
|
存储 SQL 数据库
虚拟化数据恢复—Vmware虚拟机误还原快照的数据恢复案例
虚拟化数据恢复环境: 一台虚拟机从物理机迁移到ESXI虚拟化平台,迁移完成后做了一个快照。虚拟机上运行了一个SQL Server数据库,记录了数年的数据。 ESXI虚拟化平台上有数十台虚拟机,EXSI虚拟化平台连接了一台EVA存储,所有的虚拟机都存放在EVA存储上。 虚拟化故障: 工组人员误操作将数年前迁移完成后做的快照还原了,也就意味着虚拟机状态还原到数年前,近几年数据都被删除了。 还原快照相当于删除数据,意味着部分存储空间会被释放。为了不让这部分释放的空间被重用,需要将连接到这台存储的所有虚拟机都关掉,需要将不能长时间宕机的虚拟机迁移到别的EXSI虚拟化平台上。
115 50