IDEA使用Docker插件构建镜像

IDEA使用Docker插件构建镜像

记一次坑  第一次插件docker-maven-plugin的 配置文件中没写远程主机的地址 <dockerHost>http://192.168.128.3:2375</dockerHost>-->

在idea的setting 中设置了,以为这里不用配置了,结果掉进坑了

 

 

 

 

 

 

 

 

 

<plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <!--将插件绑定在某个phase执行-->
                <executions>
                    <execution>
                        <id>build-image</id>
                        <!--用户只需执行mvn package ,就会自动执行mvn docker:build-->
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>

                <configuration>
                    <!--指定生成的镜像名-->
                    <imageName>lxcuaa</imageName>
                    <!--指定标签 这里指定的是镜像的版本,我们默认版本是latest-->
                    <imageTags>
                        <imageTag>latest</imageTag>
                    </imageTags>

                    <!--指定基础镜像jdk1.8-->
                    <baseImage>openjdk:8-jdk-alpine</baseImage>
                    <baseImage>java:8</baseImage>
                    <!-- 镜像制作人本人信息-->
                    <maintainer>chong@email.com</maintainer>


                    <!-- 结合dockerfile 构建,不需要指定基础镜像,暴露端口,因为在Dockerfilr中指定-->
                    <!--<dockerDirectory>Dockerfile的路径</dockerDirectory>-->

                    <!--指定登录容器默认到/目录-->
                    <workdir>/</workdir>
                    <!--           构建镜像的时候需要在镜像容器中运行的 linux命令          -->
                    <!--                    <runs>-->
                    <!--                        <run>-->
                    <!--                        </run>-->
                    <!--                    </runs>-->

                    <!--查看我们的java版本-->
                    <cmd>["java", "-version"]</cmd>
                    <!--${project.build.finalName}.jar是打包后生成的jar包的名字  -Duser.timezone=GMT+8 :设置时区同步(项目时间为东八区标准时间)-->
                    <entryPoint>["java","-Duser.timezone=GMT+8", "-jar", "/${project.build.finalName}.jar"]</entryPoint>

                    <!--指定远程 docker api地址(docker服务器的ip+docker的远程端口)-->
                    <dockerHost>http://192.168.128.3:2375</dockerHost>

                    <!--容器服务的端口(暴露的端口)-->
                    <!--                    <exposes>86</exposes>-->

                    <!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <!--jar 包所在的路径  此处配置的 即对应 target 目录-->
                            <!--                            <directory>${project.build.directory}</directory>-->
                            <directory>${project.build.directory}</directory>
                            <!--用于指定需要复制的文件 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
                            <!--                            <include>${project.build.finalName}.jar</include>-->
                            <include>cccdemo.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>

 

 

 

 

 

nginx
nginx
蔡定努

一、开启Docker远程访问

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

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

重新加载配置文件

  1.  
    #重新加载配置文件
  2.  
    systemctl daemon-reload
  3.  
    #重启服务
  4.  
    systemctl restart docker.service
  5.  
    #查看配置的端口号(2375)是否开启(防火墙必须放开docker远程端口)
  6.  
     

二、连接docker

使用idea的docker插件连接docker,idea默认已经下载过docker插件了,如果没有的话,需要在idea下载docker插件

点击idea的设置选项(file --> setting -> docker),新建连接
在这里插入图片描述

在这里插入图片描述
连接成功之后就可以使用服务器(虚拟机)上的docker了
在这里插入图片描述

三、镜像的拉取

idea可以通过可视化的方式拉取镜像,不用自己去敲命令
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
有时候会出现拉取的时间超时的情况,可以配置一下国内的镜像获取阿里云的加速器
在这里插入图片描述

四、容器的创建与运行

创建并且运行docker容器
在这里插入图片描述
在这里插入图片描述
创建成功之后可以看到新创建的容器,也可以在服务器(虚拟机)上用docker命令查看
在这里插入图片描述

重启容器、停止容器和删除容器等操作
在这里插入图片描述

五、docker一键部署springboot项目

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

maven项目中:

<plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <!--将插件绑定在某个phase执行-->
                <executions>
                    <execution>
                        <id>build-image</id>
                        <!--用户只需执行mvn package ,就会自动执行mvn docker:build-->
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>

                <configuration>
                    <!--指定生成的镜像名-->
                    <imageName>lxcuaa</imageName>
                    <!--指定标签 这里指定的是镜像的版本,我们默认版本是latest-->
                    <imageTags>
                        <imageTag>latest</imageTag>
                    </imageTags>

                    <!--指定基础镜像jdk1.8-->
                    <baseImage>openjdk:8-jdk-alpine</baseImage>
                    <baseImage>java:8</baseImage>
                    <!-- 镜像制作人本人信息-->
                    <maintainer>chong@email.com</maintainer>


                    <!-- 结合dockerfile 构建,不需要指定基础镜像,暴露端口,因为在Dockerfilr中指定-->
                    <!--<dockerDirectory>Dockerfile的路径</dockerDirectory>-->

                    <!--指定登录容器默认到/目录-->
                    <workdir>/</workdir>
                    <!--           构建镜像的时候需要在镜像容器中运行的 linux命令          -->
                    <!--                    <runs>-->
                    <!--                        <run>-->
                    <!--                        </run>-->
                    <!--                    </runs>-->

                    <!--查看我们的java版本-->
                    <cmd>["java", "-version"]</cmd>
                    <!--${project.build.finalName}.jar是打包后生成的jar包的名字  -Duser.timezone=GMT+8 :设置时区同步(项目时间为东八区标准时间)-->
                    <entryPoint>["java","-Duser.timezone=GMT+8", "-jar", "/${project.build.finalName}.jar"]</entryPoint>

                    <!--指定远程 docker api地址(docker服务器的ip+docker的远程端口)-->
                    <dockerHost>http://192.168.128.3:2375</dockerHost>

                    <!--容器服务的端口(暴露的端口)-->
                    <!--                    <exposes>86</exposes>-->

                    <!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <!--jar 包所在的路径  此处配置的 即对应 target 目录-->
                            <!--                            <directory>${project.build.directory}</directory>-->
                            <directory>${project.build.directory}</directory>
                            <!--用于指定需要复制的文件 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
                            <!--                            <include>${project.build.finalName}.jar</include>-->
                            <include>cccdemo.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>

 

ok,接下来只要先点击clean清除之前的所有打包的文件,然后再点击package打包文件即可完成镜像的构建,真正的一键部署

建,真正的一键部署
在这里插入图片描述
在这里插入图片描述
到此镜像构建成功,接下来只要创建容器跑起来即可
在这里插入图片描述
在这里插入图片描述
通过ip访问

posted @ 2021-02-15 18:34  abcdefghijklmnop  阅读(457)  评论(0编辑  收藏  举报