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

SpringBoot 构建 Docker 镜像的最佳 3 种方式 本文将介绍3种技术,通过 Maven 把 SpringBoot 应用构建成 Docker 镜像。 (1)使用 spring-boot-maven-plugin 内置的 build-image. (2)使用 Google 的 jib-maven-plugin。 (3)使用 dockerfle-maven-plugin。 Spring Boot 应用 为了方便实践,需要一个 Spring Boot 项目。 项目环境: Java 11 Maven 3.6.3 使用 m. 阅读详情

使用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,然后登陆,大告成功!
在这里插入图片描述

Spring Boot 3.x 系列【39】应用部署 | 构建容器镜像 Spring Boot官文中对镜像打包功能描述为Packaging OCI Images(打包为OCI镜像)。 为了推进容器化技术的工业标准化,2015 年 6 月在 DockerCon上 Linux基金会与Google,华为,惠普,IBM,Docker,Red Hat,VMware等公司共同宣布成立开放容器项目(OCP),后更名为OCI。它的主要目标便是建立容器格式和运行时的工业开放通用标准。 阅读详情

相关推荐

RT-Thread代码启动过程——以及 $Sub$ $main 与 $Super$ $main

我们找到系统复位的地方,可以往下单步跟踪。 ①从系统初始化开始执行,将函数地址赋给R0寄存器,跳转到R0地址执行并返回此处(BLX是带链接的跳转,即带返回的跳转)。 ②将main函数地址给R0,将函数地址赋给R0,跳转到R0地址执行,不返回(BX是跳转,不返回)。 ③跳转到了$Sub$$main。 【注:在 __CC_ARM 编译器环境下,使用了$Sub$$ 与$Super$ $ 的...

yang1111111112的博客 1万+

PostgreSQL逻辑复制实战:从核心原理到高效运维

本文深入解析PostgreSQL逻辑复制的核心原理与高效运维实践,涵盖WAL日志解析、复制槽管理、发布订阅模式等关键技术。通过实战案例展示如何解决零停机升级、实时数仓构建等场景需求,并提供性能优化与故障排查方案,帮助DBA掌握pg逻辑复制的精髓。

weixin_30718391的博客 303

CMOS 半加器和全加器&&数字集成电路&& Cadence Virtuoso

数字集成电路——半加器和全加器

计科小学生的博客 1万+

docker-maven-plugin插件设置Docker的buildArgs

docker-maven-plugin是spotify出品的一款针对spring boot项目的docker插件,可将spring boot项目打包到docker镜像中。 如果在编译docker镜像时需要设置build arg,只需要在maven的配置文件pom.xml中,configuration下增加buildArgs。标签的key和值对应build arg的key和值,如下所示,dock...

添经地翼的博客 3870

CRaxsRat v7.4远程管理工具使用教程(附资源下载)

CRaxsRat是一款图形化界面友好、功能较全面的远程管理平台,主要用于对多台计算机的统一维护与管理。该工具适用于以下场景:内网远程运维教学演示环境局域网设备调试程序自动化控制测试支持多种加密通信方式优化了远程桌面传输稳定性增加了自定义脚本模块后台运行更稳定,占用资源更少。

lzj781210的博客 2151

Zotero内存占用与存储优化:从根源解决卡顿与空间不足

文献管理软件在学术工作中扮演着重要角色,其核心原理是通过数据库管理元数据与附件文件,实现文献的快速检索与组织。然而,随着文献库规模增长,软件的资源管理机制可能面临挑战,尤其是内存占用与存储空间优化问题。从技术价值看,高效的附件管理策略不仅能提升软件响应速度,还能确保数据安全与可移植性。在实际应用场景中,研究者常遇到软件卡顿、存储目录膨胀等痛点,这通常与附件存储模式、缓存机制及数据库维护有关。本文聚焦于Zotero这一主流工具,针对其内存占用高、文件无法删除等常见问题,提供了外置存储、链接附件、数据库维护等系

weixin_34209060的博客 477

dockerfile-maven-plugin buildArgs参数踩坑

近期项目开发过程中使用到这个插件,同组小伙伴使用-Ddockerfile.buildArgs=JAR_FILE.hamster-server/target/hamster-server-1.1.0.jar直接指定jar,未通过pom的形式,发现报错,查看源码得知buildArgs类型为Map: 参数读取的时候org.apache.maven.plugin.PluginParameterExpressionEvaluator#evaluate(java.lang.String, java.lang.Clas

Hilite的博客 3301

DSP28335新手避坑指南:手把手教你用CCS6.2生成10KHz SPWM(附完整工程)

本文详细介绍了如何使用DSP28335开发板和CCS6.2环境生成10KHz SPWM波形的完整工程指南。从开发环境配置、ePWM模块设置到SPWM算法实现,特别针对新手常见问题提供了解决方案和调试技巧,帮助工程师快速掌握DSP28335的SPWM生成技术。

weixin_42522374的博客 182

程序员都会的DockerCompose编排服务与Maven插件构建Docker镜像

Compose是由用户定义的适合运行的多个容器的应用程序,可以在YMAL配置文件(docker-compose.yml)定义和配置服务,以及服务所需的环境变量、镜像、网络、数据卷等依赖,然后使用Docker Compose命令启动服务。如果你的Docker没有开启远程访问API,则请自行开启。传统的手动部署方式已经不适用于微服务架构,目前基于容器的交付方式已经成为微服务的标准交付方式,通过持续集成交付工具,配合自动化、可持续交付部署的基础设施,来支撑微服务应用快速地迭代交付,成为软件交付的最佳实践。

公众号:该用户快成仙了 1171

(实战)[re:Invent 2018]-001:赛道分析-(致敬1024)

打印log

Rainbow 2784

保姆级教程:用Zemax 18.9复现单模光纤耦合仿真(附康宁SMF-28e参数)

本文提供了一份详细的Zemax 18.9单模光纤耦合仿真教程,以康宁SMF-28e为例,涵盖从软件设置、材料参数输入到系统构建和优化的全流程。通过光束耦合分析和物理光学传播(POP)技术,帮助用户准确模拟光纤耦合效率,并解决常见问题,适用于光学设计初学者和专业人士。

weixin_27330481的博客 317

maven插件dockerfile-maven-plugin简单介绍

原文链接 正常情况下,我们在开发了一个应用程序后,会使用maven进行打包,生成对应的jar文件。而后,会使用docker将jar文件build成一个镜像(docker image)。之后,就可以在docker daemon中创建基于镜像的容器,并可提供服务了,dockerfile-maven-plugin 插件可以在项目构建的时候自动生成镜像,也可以自动将生成的镜像push到指定的镜像库。 下面示例是构建项目生成jar包,并且使用Dockerfile自动生成镜像。 首先,查看Dorkerfile文件,需要

1万+

实战落地!Python抓取股票历史数据:开盘/收盘/成交量全维度爬取(附数据清洗+可视化)

股票历史数据抓取的核心是“数据准确性+完整性”,网页爬取适合小批量、个性化需求,API调用适合批量、标准化需求。多市场数据抓取:适配港股(00700.HK)、美股(AAPL)的抓取逻辑;高频数据抓取:抓取分钟级、小时级行情数据,用于短线量化策略;财务数据扩展:抓取市盈率、市净率、净利润等财务指标,结合价格数据做基本面分析;量化策略回测:将清洗后的数据接入Backtrader、VNPY等量化框架,验证策略有效性。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1740

Spring Boot打包进阶:spring-boot-maven-plugin插件如何构建分层Jar与Docker镜像

本文深入解析Spring Boot项目中spring-boot-maven-plugin插件的分层Jar与Docker镜像构建技术。通过对比传统FatJar与分层Jar的结构差异,详细演示如何优化云原生环境下的构建效率,实现依赖层、资源层与应用层的智能分离,显著减少CI/CD流水线的镜像上传时间和存储空间占用。

weixin_30596023的博客 336

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

spring boot 2.4.0 不需要写Dockerfile,使用spring-boot-maven-plugin插件,一键构建镜像

一、前言 spring boot 2.4.0 的spring-boot-maven-plugin插件提供了一键构建镜像的功能,不需要自己写Dockerfile文件即可构建镜像 二、两种构建镜像方式 1、使用window本地的docker daemon构建镜像 2、使用远程docker daemon构建镜像 参考文档: 官方文档:https://docs.spring.io/spring-boot/docs/2.4.0/maven-plugin/reference/htmlsingle/#build-imag

惜鸟的博客 3078

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

docker 利用maven插件推送镜像

&lt;!-- 添加spring-boot的maven插件 --&gt; &lt;build&gt; &lt;plugins&gt; &lt;plugin&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-mav.

qq_1141193930的博客 516

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Spring Boot配置docker-maven-plugin实现构建与推送镜像(Dockerfile)

【代码】Spring Boot配置docker-maven-plugin实现构建与推送镜像。

z69183787的专栏 2664

解决Maven打包只有100多k的问题

下面贴出解决方案(可能原因),直接在maven文件里添加下列编译脚本: <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <execu

阿甘兄 5644

Maven构建docker镜像并打包推送到远程私有仓库

注意必须安装docker及Maven Maven的setting.xml中加入一下代码 </servers> <server> <id>docker-hub</id> <username>用户名</username> <password>密码</password> <configuration> <email&g.

宇晨的博客 1060

Docker创建springboot项目镜像pom及Dockerfile配置文件

pom文件添加插件 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven...

学亮编程手记 2204

spring-boot-maven-plugin插件:构建并推送docker镜像配置示例

【代码】spring-boot-maven-plugin插件:构建并推送docker镜像配置示例。

学亮编程手记 343

SpringBoot Maven项目构建Docker镜像

使用Maven构建Docker镜像插件: pom.xml 文件,添加插件 &lt;plugin&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-maven-plugin&lt;/artifactId&gt...

Zoey~~ 903

docker镜像打包工具docker-maven-plugin使用

docker-maven-plugin使用 配置: 1. spring boot 项目添加该插件 <!-- 添加docker-maven-plugin插件 --> <plugin> <groupId>com.spotify</groupId> <arti...

lyd882的博客 858

java项目打包成 Docker 镜像几种方式

docker-maven-plugin:需要手动编写 Dockerfile,适合需要自定义镜像的场景。jib-maven-plugin:无需 Dockerfile,直接构建镜像,适合简单场景。spring-boot-maven-plugin:Spring Boot 官方支持,适合 Spring Boot 项目。

qq_51417143的博客 777

spring Cloud 使用 maven docker 部署

修改pom.xml 文件 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-ma...

qq_31683775的博客 403

Spring Boot Docker

1. IDEA中配置Docker Docker默认只接受vb.net教程本地客户端的请求,为了能够远程访问它,首先要开放Docker的监听端口,允许外部应用可以访问 修改 /lib/systemd/system/docker.service 文件 找到 ExecStart 在后面追加-H tcp://0.0.0.0:2375 然后c#教程重启Docker 接下来就可python基础教程以在idea中连接docker了 这样就不用登录到服务器上看了,直接在idea中查..

chinaherolts2008的博客 90
上一篇: Harbor私有镜像仓库搭建
下一篇: docker-compose实战
wflovejava
博客等级 码龄11年 23粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值