IDEA使用Docker插件构建镜像
阅读原文时间:2023年07月08日阅读:1

IDEA使用Docker插件构建镜像

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

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


com.spotify
docker-maven-plugin
1.0.0

build-image package build

            <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>

  https://blog.csdn.net/caidingnu/article/details/109279904

蔡定努 2020-10-25 22:15:54  103  收藏 1

分类专栏: # docker 文章标签: docker

版权

nginx

nginx

蔡定努

¥9.90

订阅博主

一、开启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远程端口)

二、连接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项目中:


com.spotify
docker-maven-plugin
1.0.0

build-image package build

            <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访问