Idea中使用docker插件操作Harbor私库build,pull,push镜像

Idea中使用docker插件操作Harbor私库build,pull,push镜像

一. 配置
  1. settings - Build,Execution,Deployment - Docker

    这里如果是安装的docker Desktop, 就直接选Docker for Windows
    在这里插入图片描述

    如果是和Docker Machine一起单独安装的, 这里就选择Docker Machine的安装目录, 如果是服务器, 远程连接, 就选择TCP

  2. 然后是上面Docker菜单下的Docker Registry

在这里插入图片描述

这里要注意, 地址不要带https, 虽然写上https://也能显示connect success, 但是后面pull和push的时候会显示docker: invalid reference format的问题.

二. 操作push和pull
build
  • 方法一: 直接使用idea的docker模板
    打开上面的编译配置, 找到docker模板, 如果不需要直接deploy部署的话. 把下面的run build去掉, 选择我们配置好的docker项, 直接跑
    在这里插入图片描述
    当然也可以在Before launch中增加mvn打包的操作
    在这里插入图片描述
    如果出现idea : Not connected to docker的话, 可以试试删除docker, 再创建试试
    在这里插入图片描述
  • 方法二 使用maven插件
  1. 在dockerfile的模块中的pom中增加插件
    注意这里如果是多模块, 比如parent父模块下有repo模块, service模块, web模块, 我们一般打包的jar包在web模块中, 我们可以把dockerfile放在web模块.
    至于为什么要在对应的dockerfile文件的模块中加这个插件,而不是parent父模块中统一加, 是因为父模块在编译的时候会把子模块一起编译, 虽然可以通过<dockerfile.skip>false</dockerfile.skip>和true来控制, true表示需要dockerfile打包镜像, fasle表示不会打包镜像. 但是个人感觉还是独立开来比较好. parent继承下去太麻烦了.
    但是这样的坏处就是不能直接 在根目录mvn clean package一建打包并构建镜像. 所以看个人情况
  2. 如果报Must specify baseImage if dockerDirectory is null, 首先检查dockerDirectory, 这个是指dockerfile文件所在的文件夹目录, 可以用相对路径, 如果都在同一个目录, ./就行. 如果目录是对的, 看看dockerfile中有没有写from java:8这样的, 或者直接在pom中配置基础镜像<baseImage>jdk:1.8</baseImage>
  3. 注意配置dockerHost, 如果是windows本地就是默认2375端口, 如果是远程则填写远程docker地址
<groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.2</version>
                <!--将插件绑定在某个phase执行-->
                <executions>
                    <execution>
                        <id>build-image</id>
                        <!--用户只需执行mvn package ,就会自动执行mvn docker:build-->
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!--                    <serverId>harbor</serverId>-->
                    <!--                    <registryUrl>http://${docker.repostory}</registryUrl>-->
                    <!-- 镜像名称-->
                    <imageName>${project.build.finalName}</imageName>
                    <!--指定标签 这里指定的是镜像的版本,我们默认版本是latest-->
                    <imageTags>
                        <imageTag>1.0.0</imageTag>
                        <!--  <imageTag>T-${maven.build.timestamp}</imageTag>-->
                    </imageTags>
                    <!--必须配置dockerHost标签(除非配置系统环境变量DOCKER_HOST),windows本地装的docker一般是localhost:2375-->
                    <dockerHost>http://localhost:2375</dockerHost>
                    <!--指定基础镜像jdk1.8-->
                    <baseImage>jdk:1.8</baseImage>
                    <dockerDirectory>./</dockerDirectory>
                    <!--   是否覆盖标签, 否则同一个包一直构建镜像会把不同的tag打在一个镜像上-->
                    <forceTags>true</forceTags>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
  1. 先正常package打包
  2. 点击docker插件的build按钮
    在这里插入图片描述
pull

打开idea下面的Services标签, 可以看到我们配置的docker

在这里插入图片描述

在images上右键, 选择pull

在这里插入图片描述

如果是公共仓库的镜像, 可以直接搜索

在这里插入图片描述

如果是私库中的镜像, 格式为:仓库地址(不要https)/项目名/镜像:标签

在这里插入图片描述

push

在docker标签中的images找到我们需要push的镜像, 右键, 选择push

在这里插入图片描述

填写信息

在这里插入图片描述

这里注意, Repository的格式是 项目名/镜像名

前提是需要先在管理后台创建这个项目

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值