位置: IT常识 - 正文

微服务Docker打包(微服务docker打包规范)

编辑:rootadmin
微服务Docker打包 现在的微服务时代,你的代码没个微服务、分布式人家都会觉得低端,当然!对于我们开发人员来说,掌握这些技术意味着涨薪。 ​ 我们项目中用到了多个微服务,我们上一节课程打包用的是手动上传,但是很麻烦,有没有更好的方式呢,是有的,我们可以直接通过idea将我们的微服务打包成Docke ... 微服务Docker打包

推荐整理分享微服务Docker打包(微服务docker打包规范),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:微服务 docker,微服务 docker k8s,微服务如何打包,微服务打包部署,微服务打包docker 单体,微服务 docker k8s,微服务docker打包规范,微服务打包docker 单体,内容如对您有帮助,希望把文章链接给更多的朋友!

现在的微服务时代,你的代码没个微服务、分布式人家都会觉得低端,当然!对于我们开发人员来说,掌握这些技术意味着涨薪。

​我们项目中用到了多个微服务,我们上一节课程打包用的是手动上传,但是很麻烦,有没有更好的方式呢,是有的,我们可以直接通过idea将我们的微服务打包成Docker镜像,并推送到Docker仓库中

​这里我们采用jib-maven-plugin 来进行来构建容器化的spring boot应用程序,Jib可以让不写Dockerfile就能实现Docker打包

什么是Jib

Jib 是 Google 开发的可以直接构建 Java 应用的 Docker 和 OCI 镜像的类库,以 Maven 和 Gradle 插件形式提供。

​Jib带来的是,它允许您通过简单地将插件添加到您选择的构建工具(Maven或Gradle)来创建容器,没有额外的文件,只需几行配置,它处理将应用程序打包到容器映像的所有步骤。

​Jib是来自Google的开源Java容器,它允许Java开发人员使用他们所知道的Java工具构建容器,它不需要您编写Dockerfile或安装了docker,它直接集成到Maven和Gradle中。

和传统的插件区别Docker 构建流程

在“传统”Java到Docker映像构建流程中,我们需要安装Dockerfile和docker守护进程,在Jib构建流程中,您只需要插件项目的构建文件。

Jib构建流程

​通过 Jib,Java 开发者可以使用他们熟悉的 Java 工具来构建容器。Jib 是一个快速而简单的容器镜像构建工具,它负责处理将应用程序打包到容器镜像中所需的所有步骤。它不需要你编写 Dockerfile 或安装 Docker,而且可以直接集成到 Maven 和 Gradle中 —— 只需要将插件添加到构建中,就可以立即将 Java 应用程序容器化。

准备工作设置Horbor用户权限

我们要将idea的微服务推送到Harbor,并且用itcast的用户,所有我们要设置我们的itcast用户是开发者

pom文件配置jib

对于应用程序的基本本地存储镜像,请在pom.xml以下内容中配置jib-maven-plugin

公共属性配置

在properties中配置harbor的共有配置

<properties> <!--harbor 仓库地址--> <docker.registry.url>itcastharbor.com</docker.registry.url> <!--harbor 的项目名称--> <docker.registry.name>library</docker.registry.name> <!--harbor账号--> <docker.registry.username>itcast</docker.registry.username> <!--harbor密码--> <docker.registry.password>Qwert123</docker.registry.password></properties>编译配置插件配置<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <plugins> <plugin> <groupId>com.google.cloud.tools</groupId> <artifactId>jib-maven-plugin</artifactId> <version>2.8.0</version> <configuration> <allowInsecureRegistries>true</allowInsecureRegistries> <!--from节点用来设置镜像的基础镜像,相当于Docerkfile中的FROM关键字--> <from> <!--使用openjdk官方镜像,tag是:8-jdk-alpine,表示镜像的操作系统是alpine,装好了jdk8--> <image>openjdk:8-jdk-alpine</image> </from> <to> <!--镜像名称和tag,使用了mvn内置变量${project.version},表示当前工程的version--> <image>${docker.registry.url}/${docker.registry.name}/${project.artifactId}:${project.version} </image> <tags> <!--版本号--> <tag>${project.version}</tag> </tags> <!--harbor的认证信息--> <auth> <username>${docker.registry.username}</username> <password>${docker.registry.password}</password> </auth> </to> <!--容器相关的属性--> <container> <jvmFlags> <!--一些启动参数--> <jvmFlag>-Djava.security.edg=file:/dev/./urandom</jvmFlag> </jvmFlags> <!--挂载volume的配置--> <volumes> <volume>/tmp</volume> <volume>/logs</volume> </volumes> <ports> <!--暴漏端口号--> <port>8080</port> </ports> <!--微服务的启动类--> <mainClass>com.heima.test.Application</mainClass> <format>OCI</format> <!--使用该参数将镜像的创建时间与系统时间对其--> <creationTime>USE_CURRENT_TIMESTAMP</creationTime> </container> </configuration> <executions> <!--执行打包配置--> <execution> <id>jib-maven-plugin</id> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </executions> </plugin> <!-- Docker maven plugin --> </plugins></build>执行构建

然后在项目根目录执行mvn clean compile jib:build就可以了

我们看到已经推送成功了

harbor仓库中查看

通过域名访问harbor,我们看我们的library里面的镜像仓库

点进去就可以看到我们刚刚推送的镜像

以及镜像的详细信息

微服务Docker打包(微服务docker打包规范)

其他的微服务上传微服务打包

这里我们也将其他微服务上传到仓库,步骤同上

仓库中查看镜像

在我们的仓库中查看镜像,我们看到镜像都已经上传到仓库中了

harbor 测试删除本地镜像

可以通过docker rmi 镜像ID删除本地镜像

docker rm -f learn-docker-storagedocker rmi 192.168.64.153/library/learn-docker-storage:0.0.3

运行harbor 中的镜像

我们把我们的所有微服务都上传到了仓库中,我们以一个完整的项目运行docker

运行learn-docker-storage服务

执行运行命令

docker run -d \-v /tmp/data/logs:/logs \--name learn-docker-storage \--network=learn-docker-network \manager-hongbaoyu-java.itheima.net:8443/library/learn-docker-storage:1.0-SNAPSHOT

因为我们是基于内部网络访问 不需要暴漏接口了

访问微服务测试

curl http://192.168.64.152:8080/userinfo/10001 | python -m json.tool

运行learn-docker-web服务

执行运行命令

docker run -d \--name learn-docker-web \--network=learn-docker-network \manager-hongbaoyu-java.itheima.net:8443/library/learn-docker-web:1.0-SNAPSHOT

该微服务也是内部服务不需要暴漏端口,并且没有配置日志输出所有不挂载日志路径

运行learn-docker-gateway服务

执行运行命令

docker run -d \-p 8888:8888 \--name learn-docker-gateway \--network=learn-docker-network \manager-hongbaoyu-java.itheima.net:8443/library/learn-docker-gateway:1.0-SNAPSHOT

因为网关对外需要暴漏端口,所有需要开放8888端口

查看nacos注册的微服务

我们发现我们的三个服务都已经注册进去了

访问测试微服务

因为我们存储服务的8003端口没有暴漏出来,无法访问,我们需要通过网关进行访问

curl http://192.168.64.153:8888/employeapi/find/10001| python -m json.tool

本文由传智教育博学谷教研团队发布。

如果本文对您有帮助,欢迎关注和点赞;如果您有任何建议也可留言评论或私信,您的支持是我坚持创作的动力。

转载请注明出处!

本文链接地址:https://www.jiuchutong.com/zhishi/304690.html 转载请保留说明!

上一篇:ps闪退是什么原因(ps闪退是什么原因win11)

下一篇:Redis详解(redishi)

  • 支付宝如何转账(支付宝如何转账到微信)

    支付宝如何转账(支付宝如何转账到微信)

  • 网易云声音怎么添加到歌单(网易云声音怎么保存到本地)

    网易云声音怎么添加到歌单(网易云声音怎么保存到本地)

  • 微信一直安装失败是什么情况(微信一直安装失败原因电脑)

    微信一直安装失败是什么情况(微信一直安装失败原因电脑)

  • airpods使用寿命(airpods使用寿命是多久)

    airpods使用寿命(airpods使用寿命是多久)

  • 苹果短信标志有个叹号(苹果短信标志有几种)

    苹果短信标志有个叹号(苹果短信标志有几种)

  • wifi已连接但无法上网(wifi已连接但无法上网需登录认证)

    wifi已连接但无法上网(wifi已连接但无法上网需登录认证)

  • 华为p40pro怎么设置小圆点(华为p40pro怎么设置门禁卡)

    华为p40pro怎么设置小圆点(华为p40pro怎么设置门禁卡)

  • 微信号什么时候可以修改第二次(微信号什么时候能改)

    微信号什么时候可以修改第二次(微信号什么时候能改)

  • 荣耀play4tpro怎么设置返回键(荣耀play4tpro怎么关闭hd)

    荣耀play4tpro怎么设置返回键(荣耀play4tpro怎么关闭hd)

  • 小米9miui11稳定版 费电吗(小米9miui11稳定版刷机包)

    小米9miui11稳定版 费电吗(小米9miui11稳定版刷机包)

  • 苹果7耳机线怎么接线(苹果7耳机线怎么连接)

    苹果7耳机线怎么接线(苹果7耳机线怎么连接)

  • 华为matebookxpro2020款什么时候上市

    华为matebookxpro2020款什么时候上市

  • kindle青春版和咪咕版区别(kindle青春版和咪咕版哪个好)

    kindle青春版和咪咕版区别(kindle青春版和咪咕版哪个好)

  • q77主板支持的cpu有哪些(q77主板支持的e31280v2吗)

    q77主板支持的cpu有哪些(q77主板支持的e31280v2吗)

  • 多媒体中的媒体元素包括(多媒体中的媒体是指____,如数字、文字等)

    多媒体中的媒体元素包括(多媒体中的媒体是指____,如数字、文字等)

  • 魅族怎么开发者选项(魅族手机如何开发者选项)

    魅族怎么开发者选项(魅族手机如何开发者选项)

  • 手机抖音连不上网怎么解决(手机抖音连不上麦)

    手机抖音连不上网怎么解决(手机抖音连不上麦)

  • 拼多多主图怎么上视频(拼多多主图怎么做吸引人)

    拼多多主图怎么上视频(拼多多主图怎么做吸引人)

  • 探探好友列表在哪安全(探探好友列表在哪个程序里面)

    探探好友列表在哪安全(探探好友列表在哪个程序里面)

  • mac地址可以随便改吗(mac地址可以随便填么)

    mac地址可以随便改吗(mac地址可以随便填么)

  • 苹果版迅雷bate哪里下载(苹果版迅雷怎么下载影片)

    苹果版迅雷bate哪里下载(苹果版迅雷怎么下载影片)

  • 华为手机4g网速慢怎么调设置(华为手机4G网速)

    华为手机4g网速慢怎么调设置(华为手机4G网速)

  • 华为折叠机什么时候上市(华为折叠机好用吗)

    华为折叠机什么时候上市(华为折叠机好用吗)

  • stm32与51单片机区别(stm32与51单片机的优缺点)

    stm32与51单片机区别(stm32与51单片机的优缺点)

  • 鸿蒙系统怎么快速删除相册中相似照片? 鸿蒙快速找出相似照片的技巧(鸿蒙系统怎么快速充电)

    鸿蒙系统怎么快速删除相册中相似照片? 鸿蒙快速找出相似照片的技巧(鸿蒙系统怎么快速充电)

  • Axios发送请求的方法(axios发送多个请求)

    Axios发送请求的方法(axios发送多个请求)

  • 股权转让的相关文件有哪些
  • 如何理解增值税中性特点
  • 固定资产一次性折旧的账务处理和税务处理
  • 资本公积转实收资本要交税吗
  • 发票超额如何收税
  • 无形资产净损失计入
  • 增值税专用发票税额怎么抵扣
  • 货币资金核算的调查报告
  • 公司为员工异地调岗
  • 产品销售返利模式
  • 应收账款已收回但是账面还有余额怎么处理
  • 固定资产作为实收资本报废怎么处理
  • 开具增值税专用发票承诺函
  • 饭店取得的烟酒是什么
  • 纳税调增调减项目有哪些各站多少比例
  • 返还经费
  • 出差人什么意思
  • win10禁用安全杀毒功能
  • 苹果手机记事本提醒如何设置
  • 安装win7系统的硬件要求
  • 电脑开机弹出很多广告窗口怎么办win10
  • PHP:mb_http_input()的用法_mbstring函数
  • php数组函数 菜鸟
  • 公司付物业费没开发票
  • 板栗怎样保存1年不坏
  • 领用增值税专用发票需要旧发票兑换吗
  • 股东分红个人所得税怎么算
  • 企业所得税的税率是多少
  • 企业的组织形式共5种
  • 出租个人住房怎样交税
  • 运输公司的账务处理
  • 上级拨付的债券会计分录
  • 交易性金融资产公允价值变动计入
  • php查询语句怎么写
  • 成本法处置子公司丧控合并层面
  • php怎么读取txt
  • vue中事件
  • 【超直白讲解opencv RGB与BGR】RGB模式与BGR模式有什么不同,如何相互转换?
  • 2023年会出什么车
  • 前端进阶教程
  • 使用什么指令可以清空memcached数据库中的所有数据
  • php会员系统
  • 飞机票抵扣进项税含民航发展基金吗
  • 增值税专用发票怎么开
  • 公司租用员工的车需要发票吗
  • 经营活动现金流量比率
  • 建筑企业预缴税率
  • 汽车修理厂会计账务处理
  • 离职补偿金的计算基数
  • 不需要支付的应付账款
  • 发行债券支付的发行费用计入哪里
  • 研发费用加计扣除的条件
  • 购进货物未取得增值税专用发票可以抵扣进项税额吗
  • 预收账款占销售收入比例预警值为比例大于
  • 施工单位上报
  • sql导入和导出数据
  • sql注入式攻击中单引号的作用
  • 如何彻底释放k50至尊版性能
  • Mac怎么强制关闭窗口
  • avsched32.exe是什么进程 avsched32进程有什么作用
  • 电脑找不到关机选项了怎么关机
  • linux中ftp
  • linux系统的内存分配和回收采用什么算法?
  • 硬盘已经安装系统文件夹
  • 如何刷硬盘使用时间
  • linux怎么查看挂载点
  • div-css
  • css的reset
  • angular script
  • shell 字符串trim
  • jquery 选择器 空格
  • nodejs怎么使用
  • 对xmlHttp对象的理解
  • android四大组件面试
  • 个人所得税完税证明网上打印
  • 地方税务局发票查询
  • 吉林省耕地占用税实施办法
  • 长春市医保社保什么时候年检
  • 洛阳市房屋契税新政策
  • 上海市办居住证流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设