• 基于 idea 将 springboot 应用部署到 docker环境


    前言

    上一节我们学习了如何手动的构建镜像并最终把服务发布到 docker 环境,其实强大的 idea 已经为我们预制了这方面的支持,我们只需要几个简单的配置就可以一键把应用发布到 docker 环境。

    基于 idea 的插件部署 docker

    1. 开启 docker 远程访问
      docker 的远程操作是默认关闭的,需要修改 docker 配置,让其支持远程访问。
      修改 docker 的配置文件
    vi /lib/systemd/system/docker.service
    
    • 1

    修改 ExecStart=/usr/bin/dockerd ‐H tcp://0.0.0.0:12345 ‐H unix:///var/run/docker.sock
    在这里插入图片描述
    打开 idea(我这里使用的是 IDEA 2021.2.2),默认已经安装了 docker 插件。通过 file -> settings -> Build,Execution,Deployment -> Docker添加 docker 的配置 docker 的地址。
    在这里插入图片描述
    配置完成,正常的前开光可以看到下面的 Connection successful,如果连接不上,修改宿主机的防火墙配置,开放 12345(自定义) 端口。如果是云主机,修改其安全组策略,开放对应的端口。
    连接上 docker 以后,我们只需要简单的配置就可以直接把服务部署到 docker 上了。
    编辑 idea 的 Run/Debug Configurations
    在这里插入图片描述
    你没看错,只需要简单的配置这基础地方,接下来就是见证奇迹的时刻了。
    点击运行:
    在这里插入图片描述
    你没看错,这就把服务部署上去了!!
    查看 docker 服务:
    在这里插入图片描述
    我们的服务确实已经不上成功了!
    接口也可以正常访问了
    在这里插入图片描述
    当然,也可以基于 maven 的插件来实现,只需要添加 docker-maven-plugin 插件,也可以通过 maven 把服务镜像推到 docker 镜像仓库

    
                <plugin>
                    <groupId>com.spotifygroupId>
                    <artifactId>docker-maven-pluginartifactId>
                    <version>1.0.0version>
    
    
                    <executions>
                        <execution>
                            <id>build-imageid>
                            
                            <phase>packagephase>
                            <goals>
                                <goal>buildgoal>
                            goals>
                        execution>
                    executions>
                    <configuration>
                        
                        <imageName>${project.artifactId}imageName>
                        
                        <imageTags>
                            <imageTag>latestimageTag>
                        imageTags>
                        
                        <dockerDirectory>${project.basedir}dockerDirectory>
    
                        
                        <dockerHost>http://ip:12345dockerHost>
                        
                        <resources>
                            <resource>
                                <targetPath>/targetPath>
                                
                                <directory>${project.build.directory}directory>
                                
                                <include>${project.build.finalName}.jarinclude>
                            resource>
                        resources>
                    configuration>
                plugin>
            plugins>
        build>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    到这里,我们的目标基本就完成了,但是有一个小瑕疵,我们的docker 现在是开放了 对所有客户端的远程访问,这样很不安全,可以参考这篇博客生成证书校验。今天的分享就到这里,各位晚安。

  • 相关阅读:
    Java面试八股之线程池中submit和execute方法的区别
    每日一题 2511. 最多可以摧毁的敌人城堡数目
    [附源码]计算机毕业设计springboot区域医疗服务监管可视化系统
    Java 算法篇-链表的经典算法:判断回文链表、判断环链表与寻找环入口节点(“龟兔赛跑“算法实现)
    糖尿病新世界杂志糖尿病新世界杂志社糖尿病新世界编辑部2022年第12期目录
    【GD32】GD32F303串口设置DMA发生中断无法进入中断函数
    java学习集合二 Set集合 Map集合
    el-dialog element-ui弹窗
    [vue] XLSX 导出数据为excel
    [Leetcode] 0836. 矩形重叠
  • 原文地址:https://blog.csdn.net/hxj413977035/article/details/126149027