使用docker-maven-plugin构建Spring boot镜像

使用docker-maven-plugin构建镜像

docker-maven-plugin的Github地址:

https://github.com/spotify/docker-maven-plugin

目的

使用docker-maven-plugin插件在maven项目中创建一个Docker镜像,比方说,build 过程可以为java服务输出一个可以运行该服务的Docker镜像。

建立

默认情况下,执行mvn docker:build -DpushImage命令时,将尝试连接到localhost:2375上的docker。将DOCKER_HOST环境变量设置为在其他位置连接。

DOCKER_HOST=tcp://:2375

> [ERROR] Failed to execute goal
> com.spotify:docker-maven-plugin:1.0.0:build (default-cli) on project
> wf-docker: Exception caught: java.util.concurrent.Execution Exception:
> com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException:
> org.apache.http.conn.HttpHostConnectException: Connect to
> 192.168.3.148:2375 [/192 .168.3.148] failed: Connection refused: connect -> [Help 1]

解决方式:
1.在linux服务器上装好docker
2.接下来要想在windows中操作远程linux中的docker,那前提是必须开启docker远程API。
修改docker配置文件#vi /usr/lib/systemd/system/docker.service ,进入编辑模式后,将ExecStart这一行后面加上 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock ,改完后如下所示

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock  

这里就写4个0,你可别改成自己的ip哦,保存后退出,重新加载配置文件#systemctl daemon-reload ,启动docker #systemctl start docker ,

输入#netstat -anp|grep 2375 显示docker正在监听2375端口,输入#curl 127.0.0.1:2375/info 显示一大堆信息,证明远程api就弄好了

3.在windows系统环境变量中新建DOCKER_HOST

值为tcp://192.168.3.148:2375

在这里插入图片描述
在POM中指定构建信息

 <build>
        <plugins>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <imageName>192.168.3.163/wf-docker</imageName>
                    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>

使用Dockerfile
要使用一个Dockerfile,指定必须dockerDirectory元素。

<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>

在这里插入图片描述

用法

通过运行此命令来使用上述配置构建映像。

mvn clean package docker:build

要将刚刚构建的映像推送到注册表,指定请pushImage标志。

mvn clean package docker:build -DpushImage

要仅将特定标记推送到注册表,指定请pushImageTag标记。

mvn clean package docker:build -DpushImageTag

使用私有镜像中心配置
为了将镜像推送到私有的镜像注册中心,docker需要在镜像tag之前用注册中心的地址作为前缀。比如需要推送my-image到registry.example.com那么这个镜像需要命名为registry.example.com/my-image
最简单的方法就是在中配置:

  <build>
        <plugins>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <imageName>registry.example.com/my-image/imageName>

这样,当你通过命令docker:build -DpushImage或者docker:push推送镜像时,docker引擎会将镜像推送到registry.example.com.

推送镜像到私有仓库
1.先登陆
docker login ip
2.执行推送命令
mvn docker:build -DpushImage
报错:
在这里插入图片描述
vim /etc/docker/daemon.json
添加信任:

“insecure-registries” : [“192.168.3.146”]
在这里插入图片描述
systemctl daemon-reload
systemctl restart docker
重启docker,然后登陆,大告成功!
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值