IDEA集成Docker实现快捷部署的操作步骤

 更新时间:2024年06月22日 11:04:52   作者:武梓龙_Wzill  
这篇文章主要介绍了IDEA集成Docker实现快捷部署的操作步骤,通过灵活利用这一功能,开发人员可以更快速地开发、调试和部署应用程序,从而提高开发工作的效率和质量,需要的朋友可以参考下

背景介绍

  在我们手动通过Docker部署项目的时候,都是通过把打包好的jar包放到服务器上并且在服务器上编写对应的DockerFile,然后在通过docker bulid命令根据jar包和Docker File生成对应的镜像,然后通过docker start或者docker run运行镜像产生容器来提供服务。

优势特点

IDEA集成Docker快捷部署的好处:

  1. 提高开发效率:通过IDEA集成Docker,可以在开发过程中直接部署和调试Docker容器,无需手动操作Docker命令行工具,节省时间并提高开发效率。

  2. 便捷调试:快捷部署功能可以帮助开发人员快速部署运行容器,并在IDEA中使用调试器进行调试,方便定位和解决问题。

  3. 一体化开发环境:集成Docker的快捷部署使得开发人员可以在IDEA中完成代码编写、构建、部署和调试等操作,提供了一体化的开发环境,减少了切换工具之间的复杂性。

  4. 持续集成部署:可以结合CI/CD工具,实现持续集成和部署,通过IDEA集成Docker进行快速部署,更方便实现自动化部署流程。

  5. 方便分享和共享:通过快捷部署功能,可以方便地将开发环境打包成镜像并分享给团队成员,提高团队协作效率。

操作步骤

一、修改Docker配置 修改dcoker.service文件开启远程访问

vim /lib/systemd/system/docker.service
将
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
替换为
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

重启Docker服务

systemctl daemon-reload
systemctl restart docker

服务器防火墙开启2375端口

firewall-cmd --add-port=2375/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports

测试是否可以远程连接
在控制台输入:curl http://127.0.0.1:2375/version,会显示下面的信息

在自己电脑上的浏览器中输入服务器的ip地址+端口号+/version

如果浏览器上不能访问,那么需要在服务器的管理控制台添加安全组规则,我的服务器是华为云的,添加开放2375端口。然后在访问浏览器查看是否访问成功。

二、配置Docker插件

点击File -> Settring连接docker服务,显示Connection successful表示连接成功

配置成功之后在下方的Services中可以看到Docker中的镜像和容器

三、编写Maven插件

修改项目的pom.xml文件

  <properties>
    <!--docker镜像的前缀-->
    <docker.image.prefix>docker</docker.image.prefix>
  </properties>
<plugin>
     <groupId>com.spotify</groupId>
     <artifactId>docker-maven-plugin</artifactId>
     <version>1.0.0</version>
     <configuration>
           <!--远程Docker的地址-->
           <dockerHost>http://XXX.XXX.XXX.XXX:2375</dockerHost>
           <!--镜像名称,前缀/项目名-->
           <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
           <!--DockerFile所在的位置-->
           <dockerDirectory>src/main/java/com/example/dockerdemo/docker</dockerDirectory>
          		 <resources>
                     <resource>
                         <targetPath>/</targetPath>
                         <directory>${project.build.directory}</directory>
                         <include>${project.build.finalName}.jar</include>
                     </resource>
                 </resources>
      </configuration>
 </plugin>

新建docker文件夹,将编写好的Dockerfile放到这个文件夹

四、构建Docker镜像

一次使用以下命令构建镜像

clean
package
docker:build

根据构建的日志信息查看是否构建成功

可以点开Service中的Docker查看已经构建好的镜像

五、创建Docker容器

Docker控制台选中镜像右键,点击创建镜像,填写参数,点击run

可以通过启动的日志信息来判断是否启动成功

启动成功之后可以在Containers

总结提升

  IDEA集成Docker的快捷部署为开发人员提供了更加便捷和高效的开发环境,有助于提升团队的开发效率和协作能力。通过灵活利用这一功能,开发人员可以更快速地开发、调试和部署应用程序,从而提高开发工作的效率和质量。

到此这篇关于IDEA集成Docker实现快捷部署的文章就介绍到这了,更多相关IDEA集成Docker部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MyBatis-plus的五种批量插入方式对比分析

    MyBatis-plus的五种批量插入方式对比分析

    本文主要介绍了MyBatis-plus的五种批量插入方式对比分析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • 使用Jackson 处理 null 或者 空字符串

    使用Jackson 处理 null 或者 空字符串

    这篇文章主要介绍了使用Jackson 处理 null 或者 空字符串,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Spring cloud alibaba之Ribbon负载均衡实现方案

    Spring cloud alibaba之Ribbon负载均衡实现方案

    Spring cloud Ribbon是基于Netflix Ribbon实现的一套客户端的负载均衡工具,Ribbon客户端提供一系列完善的配置,如超时、重试等,Ribbon也可以实现自己的负载均衡算法,感兴趣的朋友跟随小编一起看看吧
    2021-07-07
  • Java实现计网循环冗余检验算法的方法示例

    Java实现计网循环冗余检验算法的方法示例

    这篇文章主要给大家介绍了关于Java实现计网循环冗余检验算法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Java中File、Base64、MultipartFile之间相互转换的代码详解

    Java中File、Base64、MultipartFile之间相互转换的代码详解

    File、Base64和MultipartFile都是在编程中常用的类或者数据类型,用于处理文件和数据的存储、传输和转换等操作,本文将给大家介绍了Java中File、Base64、MultipartFile之间相互转换,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2024-04-04
  • Spring session实现共享单点登录案例过程解析

    Spring session实现共享单点登录案例过程解析

    这篇文章主要介绍了Spring session实现共享单点登录案例过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Java 集合框架掌握 Map 和 Set 的使用(内含哈希表源码解读及面试常考题)

    Java 集合框架掌握 Map 和 Set 的使用(内含哈希表源码解读及面试常考题)

    这篇文章主要介绍了Java 集合框架掌握 Map 和 Set 的使用并含有内含哈希表源码解读及面试常考题, Map 和 Set 是一种适合动态查找的集合容器或者数据结构下面文章详细介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2021-12-12
  • java实现打印日历

    java实现打印日历

    这篇文章主要为大家详细介绍了java打印日历的实现代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • Spring IOC的相关注解运用详解

    Spring IOC的相关注解运用详解

    这篇文章主要介绍了Spring IOC的相关注解运用详解,纯注解实现IOC需要一个Java类代替xml文件,这个Java类上方需要添加@Configuration,表示该类是一个配置类,作用是代替配置文件,需要的朋友可以参考下
    2023-08-08
  • Mybatis中的常用OGNL表达式

    Mybatis中的常用OGNL表达式

    这篇文章主要介绍了Mybatis中的常用OGNL表达式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06

最新评论