Docker之使用maven插件【配置方式】构建并推送镜像到私有仓库

准备工作

操作系统版本

[root@node02 ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

docker版本

[root@node02 ~]# docker -v
Docker version 18.06.3-ce, build d7080c1

目前我在本地vmware虚拟机里已经安装了docker registry私有仓库(192.168.126.99),具体步骤可以参考 :
【安装私有镜像仓库-docker-registry+docker-registry-web(镜像仓库+镜像仓库管理界面)】

开启docker仓库相关API(端口)

开通相关api是通过修改docker私有仓库所在机器配置文件实现的

vi /usr/lib/systemd/system/docker.service

在 ExecStart 配置后添加:

-H tcp://0.0.0.0:2375  -H unix://var/run/docker.sock

表示开启2375端口,最终如下(注意空格):
在这里插入图片描述

在docker api所在服务器上配置私有仓库的地址
vi /etc/docker/daemon.json

添加私有仓库地址:

{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://kn0t2bca.mirror.aliyuncs.com"],
"insecure-registries": [ "192.168.126.99:5000"]
}

根据实际情况添加:insecure-registries配置,如果不配置会导致push失败 (我这里docker api和docker registry在同一台机器上 即192.168.126.99)
在这里插入图片描述

重启docker

systemctl daemon-reload
systemctl restart docker
验证
netstat -ano |grep 2375
或者访问连接
curl 127.0.0.1:2375/info


这样就表示api开启成功了

重启私有仓库(docker-compuse方式),由于刚刚重启了docker,所以需要重启registry镜像

[root@registry ~]# docker-compose -f registry.yml -f web.yml up -d
Starting registry_web ... done
Starting registry     ... done

maven插件编写

编写通过 docker-maven-plugin 插件

<build>
        <plugins>
               
           <!-- spring-boot-maven-plugin -->
          <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!-- 启动主类-->
                    <mainClass>com.xx.EurekaServerApp</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            
            <!--docker-maven-plugin start-->
            <plugin>               
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.1.0</version>
                <configuration>
                    <!--仓库地址-->
                    <registryUrl>192.168.126.99:5000</registryUrl>
                    <!--docker api地址,构建镜像是通过api调用在192.168.126.99上构建,并推送到registryUrl上-->
                    <dockerHost>http://192.168.126.99:2375</dockerHost>
                    <!--镜像名称-->
                    <imageName>192.168.126.99:5000/${project.artifactId}:${project.version}</imageName>
                    <!--tag
                    <imageTags>
                        <imageTag>${project.version}</imageTag>
                        <imageTag>latest</imageTag>
                    </imageTags>
                    -->

                    <!--基础镜像-->
                    <baseImage>java:8</baseImage>
                    <!--启动容器里执行的命令-->
                    <entryPoint>["java", "‐jar","/${project.build.finalName}.jar"]</entryPoint>
                    <!--是否推送镜像-->
                    <pushImage>true</pushImage>
                    <!--推送后是否覆盖已存在的标签镜像-->
                    <forceTags>true</forceTags>
                    <!--资源,类似Dockerfile里的 ADD -->
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
                <!--docker-maven-plugin end-->
            </plugin>
        </plugins>
    </build>
构建、 推送

docker 推送前必须保证本地jar包已经打包好
在这里插入图片描述

docker:build日志
在这里插入图片描述

在docker-registry-web上查看(docker-registry-web部署可以查看我上一篇【Docker之用docker-compose安装registry和docker-registry-web私有仓库和仓库前端】
在这里插入图片描述

pom配置文件上传到了 【gitee】 https://gitee.com/aqu415/demo/tree/master/springcloud/eurekaserver-8001
在这里插入图片描述

over~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值