菜鸟的IDEA使用Docker插件

菜鸟的IDEA使用Docker插件

  • 说明
  • 一、开启Docker远程访问
  • 二、连接docker
  • 三、镜像的拉取
  • 四、容器的创建与运行
  • 五、docker一键部署springboot项目

说明

之前docker的学习,包括镜像拉取,容器创建等操作都需要自己手动敲命令来实现,但是如果在idea中使用Docker插件,就可以不用敲命令也可以实现对docker的操作,不得不说idea这个工具是真的强!!!本文会持续更新,不断地扩充

本文仅为记录学习轨迹,如有侵权,联系删除

注意:一般是用的服务器,作为测试这里就采用虚拟机+Ubuntu系统的方式

一、开启Docker远程访问

如果使用idea编辑器的话,可以使用docker插件来远程使用服务器(虚拟机)上的docker,简单方便快捷的使用docker,更重要的是使用插件可以实现项目的一键部署,当然这还需要一些简单的配置。
默认的dokcer是不支持远程访问的,需要加点配置,开启Docker的远程访问

#修改Docker服务文件,需要先切换到root用户
vim /lib/systemd/system/docker.service
#注释掉"ExecStart"这一行,并添加下面这一行信息
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375

菜鸟的IDEA使用Docker插件_第1张图片
重新加载配置文件

#重新加载配置文件
systemctl daemon-reload
#重启服务
systemctl restart docker.service
#查看配置的端口号(2375)是否开启(非必要)
netstat -nlpt  #如果找不到netstat命令,可以先安装一下这个工具,具体百度

菜鸟的IDEA使用Docker插件_第2张图片

二、连接docker

使用idea的docker插件连接docker,idea默认已经下载过docker插件了,如果没有的话,需要在idea下载docker插件
菜鸟的IDEA使用Docker插件_第3张图片
点击idea的设置选项(file --> setting -> docker),新建连接
菜鸟的IDEA使用Docker插件_第4张图片
菜鸟的IDEA使用Docker插件_第5张图片
连接成功之后就可以使用服务器(虚拟机)上的docker了
菜鸟的IDEA使用Docker插件_第6张图片

三、镜像的拉取

idea可以通过可视化的方式拉取镜像,不用自己去敲命令
菜鸟的IDEA使用Docker插件_第7张图片
菜鸟的IDEA使用Docker插件_第8张图片
菜鸟的IDEA使用Docker插件_第9张图片
有时候会出现拉取的时间超时的情况,可以配置一下国内的镜像获取阿里云的加速器
菜鸟的IDEA使用Docker插件_第10张图片

四、容器的创建与运行

创建并且运行docker容器
菜鸟的IDEA使用Docker插件_第11张图片
菜鸟的IDEA使用Docker插件_第12张图片
创建成功之后可以看到新创建的容器,也可以在服务器(虚拟机)上用docker命令查看
菜鸟的IDEA使用Docker插件_第13张图片

重启容器、停止容器和删除容器等操作
菜鸟的IDEA使用Docker插件_第14张图片

五、docker一键部署springboot项目

传统的docker部署springboot项目,需要自己手动配置Dockerfile文件,还需要将生成的jar包跟Dockerfile文件一起上传到服务器,整个流程下来很麻烦,如果用idea的docker插件就可以实现一键部署springboot项目,简单方便。

首先需要引入docker的构建工具

    <build>
        
        <finalName>${project.artifactId}finalName>

        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>


            
            <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>cainiao/${project.artifactId}imageName>

                    
                    <imageTags>
                        <imageTag>latestimageTag>
                    imageTags>

                    
                    <baseImage>javabaseImage>
                    
                    
                    <workdir>/ROOTworkdir>

                    
                    <cmd>["java", "-version"]cmd>

                    
                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]entryPoint>

                    
                    <dockerHost>http://192.168.29.133:2375dockerHost>

                    
                    <resources>
                        <resource>
                            <targetPath>/targetPath>
                            
                            <directory>${project.build.directory}directory>
                            
                            <include>${project.build.finalName}.jarinclude>
                        resource>
                    resources>

                configuration>
            plugin>
        plugins>
    build>

ok,接下来只要先点击clean清除之前的所有打包的文件,然后再点击package打包文件即可完成镜像的构建,真正的一键部署
菜鸟的IDEA使用Docker插件_第15张图片
菜鸟的IDEA使用Docker插件_第16张图片
到此镜像构建成功,接下来只要创建容器跑起来即可
菜鸟的IDEA使用Docker插件_第17张图片
菜鸟的IDEA使用Docker插件_第18张图片
通过ip访问
菜鸟的IDEA使用Docker插件_第19张图片
至此,一键构建部署springboot项目成功!

可能的错误:

“java.lang.NoClassDefFoundError:javax / activation / DataSource”(tomcat 9.0.12)

网上查了一下,发现这样的一段话,具体看这里
菜鸟的IDEA使用Docker插件_第20张图片
刚好我想起来这个项目之前开发用的是jdk8,然后我现在用的jdk11,所以在构建的时候会出现这个问题,我感觉应该是这个问题导致,虽然构建成功了,运行访问都没有问题,建议开发跟构建docker的时候jdk版本保持一致。

以上就是idea使用docker插件的一些操作,包括docker一键部署springboot项目,有错欢迎指出!!!

你可能感兴趣的:(docker)