Linux+Docker+SpringBoot+IDEA一键自动化部署的详细步骤

 更新时间:2020年07月03日 14:44:29   作者:梦想blog  
这篇文章主要介绍了Linux+Docker+SpringBoot+IDEA一键自动化部署的详细步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

Linux+Docker+SpringBoot+IDEA一键自动化部署的步骤

记录从打包到服务器配置上线全流程

安装docker

详细步骤请戳这里

用yum源安装用yum源安装
查看是否已安装docker列表

yum list installed | grep docke

安装docker

yum -y install docker

-y表示不询问安装,直到安装成功,安装完后再次查看安装列表

开放2375端口,开启远程访问

vim /usr/lib/systemd/system/docker.service

这行:

ExecStart=/usr/bin/dockerd-current \

替换为:

ExecStart=/usr/bin/dockerd-current -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \

重新加载docker配置

systemctl daemon-reload // 1,重新加载配置文件
systemctl restart docker // 2,重启docker

查看端口是否开启

netstat -nptl

直接curl看是否生效

curl http://127.0.0.1:2375/version

虽然开放此端口打包程序很方便,但是会导致一些安全问题,因此 可以限制访问IP来解决,在云服务器中设置安全组即可

IDEA链接docker

第一步,远程链接docker:

在这里插入图片描述

成功后可见:

在这里插入图片描述

打镜像包

大致流程如下,采用maven绑定的方式进行打包镜像,然后根据该镜像建立一个docker容器,启动容器,即可
首先我们先创建一个DockerFile,路径参考:

在这里插入图片描述

DockerFile文件内容如下:

FROM java:8
VOLUME /tmp
#docker-day1-1.0.jar为项目打包为jar包的名字,app.jar为别名
ADD docker-day1-1.0.jar app.jar
#运行的时候对外提供的端口默认是8090,即便你在这里声明了3000也不会改变默认的端口8090
EXPOSE 8090
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

然后在pom文件里面配置docker-maven-plugin插件,在plugins节点下,添加一个plugin,内容如下:

<!--使用docker-maven-plugin插件-->
  <plugin>
  <groupId>com.spotify</groupId>
  <artifactId>docker-maven-plugin</artifactId>
  <version>1.0.0</version>
  <!--将插件绑定在某个phase执行-->
  <executions>
   <execution>
   <id>build-image</id>
   <!--将插件绑定在package这个phase上。也就是说,用户只需执行mvn package ,就会自动执行mvn docker:build-->
   <phase>package</phase>
   <goals>
    <goal>build</goal>
   </goals>
   </execution>
  </executions>
  <configuration>
   <!--指定生成的镜像名-->
   <imageName>jason/${project.artifactId}</imageName>
   <!--指定标签-->
   <imageTags>
   <imageTag>latest</imageTag>
   </imageTags>
   <!--指定 Dockerfile 路径-->
   <dockerDirectory>${project.basedir}/src/main/resources/docker</dockerDirectory>
   <!--指定远程 docker api地址-->
   <dockerHost>http://58.87.113.58:2375</dockerHost>
   <!--这里是复制 jar 包到 docker 容器指定目录配置 -->
   <resources>
   <resource>
    <targetPath>/</targetPath>
    <!--jar 包所在的路径 此处配置的 即对应 target 目录-->
    <directory>${project.build.directory}</directory>
    <!--需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
    <include>${project.build.finalName}.jar</include>
   </resource>
   </resources>
  </configuration>
  </plugin>

配置完成,现在使用maven package,即可将我们的jar包打成docker镜像,可以使用idea右侧的快捷方式,
也可以使用命令:

mvn package

完成后,我们会在这里看见我们刚打好的镜像包

在这里插入图片描述

运行该镜像,需要使用到docker的容器来承载它,我们右键创建

在这里插入图片描述

设置镜像名称,设置IP映射即可,我这里项目的port是8090,容器对外开放设置为8091

在这里插入图片描述

设置完之后我们点击Run,访问我们提前写好的测试接口,测试结果

在这里插入图片描述

那么问题来了,我们开发的时候改完代码就需要发布一次,不可能每次都先点一下package然后再run是吧,这样多捞啊,我们把这两个步骤串起来,不就行了吗
继续编辑我们刚刚的配置,添加一个maven步骤即可

在这里插入图片描述

那么我们再次修改代码后,再点击Run,即可在线上看到最新的程序了,至此一个简单的一键部署就完成了

在这里插入图片描述

附:java源码下载

到此这篇关于Linux+Docker+SpringBoot+IDEA一键自动化部署的详细步骤的文章就介绍到这了,更多相关Linux+Docker+SpringBoot+IDEA一键自动化部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java jdk安装及javac命令无效解决方案

    Java jdk安装及javac命令无效解决方案

    这篇文章主要介绍了Java jdk安装及javac命令无效解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • springboot+vue实现Token自动续期(双Token方案)

    springboot+vue实现Token自动续期(双Token方案)

    双Token方案通过访问令牌和刷新令牌提高用户登录安全性和体验,访问令牌有效期短,包含用户信息,用于请求校验,本文就来介绍一下springboot+vue实现Token自动续期(双Token方案),感兴趣的可以了解一下
    2024-10-10
  • java数据结构与算法之noDups去除重复项算法示例

    java数据结构与算法之noDups去除重复项算法示例

    这篇文章主要介绍了java数据结构与算法之noDups去除重复项算法实现技巧,程序代码非常简单,关键在于循环与判定,需要的朋友可以参考下
    2016-08-08
  • SpringBoot整合quartz实现定时任务

    SpringBoot整合quartz实现定时任务

    这篇文章主要为大家详细介绍了SpringBoot如何整合quartz实现定时任务,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-10-10
  • Java实现DES加密与解密,md5加密以及Java实现MD5加密解密类

    Java实现DES加密与解密,md5加密以及Java实现MD5加密解密类

    这篇文章主要介绍了Java实现DES加密与解密,md5加密以及Java实现MD5加密解密类 ,需要的朋友可以参考下
    2015-11-11
  • Spring事务失效的原因及解决方案

    Spring事务失效的原因及解决方案

    本文主要介绍了Spring事务失效的原因及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • SpringBoot整合logback的示例代码

    SpringBoot整合logback的示例代码

    Logback是由log4j创始人设计的又一个开源日志组件,logback分为三个模块,在文章开头给大家介绍的很明确,接下来通过本文重点介绍下SpringBoot整合logback的方法,需要的朋友可以参考下
    2022-04-04
  • es创建索引和mapping的实例

    es创建索引和mapping的实例

    这篇文章主要介绍了es创建索引和mapping的实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • java之向linux文件夹下写文件无权限的问题

    java之向linux文件夹下写文件无权限的问题

    这篇文章主要介绍了java之向linux文件夹下写文件无权限的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • springboot获取真实ip地址的方法实例

    springboot获取真实ip地址的方法实例

    在使用springboot时,需要获取访问客户端的IP地址,所以下面这篇文章主要给大家介绍了关于springboot获取真实ip地址的相关资料,需要的朋友可以参考下
    2022-06-06

最新评论