Docker与Jib(maven插件版)实战

   日期:2024-12-26    作者:f2jed 移动:http://ljhr2012.riyuangf.com/mobile/quote/56605.html

关于Jib

Java应用如果要运行在docker环境,就要制作包含该应用的docker镜像,Jib就是用来制作此镜像的的工具,有三种使用Jib的方法

Docker与Jib(maven插件版)实战

  1. Maven插件:jib-maven-plugin
  2. Gradle插件:jib-gradle-plugin
  3. Java库:Jib Core

Jib的官网地址是:https://github.com/GoogleContainerTools/jib

今天咱们要聊的是第一种:通过jib的maven插件将java应用构建成docker镜像

实战环境信息

  1. 操作系统:CentOS Linux release 7.6.1810
  2. docker:1.13.1
  3. jdk:1.8.0_191
  4. maven:3.6.0

接下来一起开发一个java应用,并使用jib的maven插件,来构建该应用对应的docker镜像

源码下载

如果您不打算写代码,也可以从GitHub上下载本次实战的源码,地址和链接信息如下表所示

名称链接备注项目主页https://github.com/zq2599/blog_demos该项目在GitHub上的主页git仓库地址(https)https://github.com/zq2599/blog_demos.git该项目源码的仓库地址,https协议git仓库地址(ssh)git@github.com:zq2599/blog_demos.git该项目源码的仓库地址,ssh协议

准备java应用

准备一个最简单的springboot应用hellojib,用于实战构建docker镜像

  1. 该应用是基于maven构建的,启动类如下
 
  1. 有一个controller用于后面验证服务是否正常
 
  1. 最重要的部分来了,pom.xml的内容如下,请注意注释
 

上述xml中有以下几处需要注意
a. 插件的节点中增加了插件jib-maven-plugin的配置
b. from节点用来设置基础镜像,一般使用openjdk官方镜像,如果您想了解更多请参考《openjdk镜像的tag说明》
c. to节点用于指定镜像名称和tag
d. container节点用来设置容器的属性,例如对外暴露的端口、jvm参数等

完成了上述设置,就可以构建镜像了

构建成tar文件

还记得常用的docker到处到处命令么
. docker save命令将本地仓库的docker镜像导出成tar格式的文件
. docker load命令可以将tar格式的镜像文件导入到本地镜像仓库

利用Jib,我们可以将java应用做成docker镜像并生成tar格式的文件,操作步骤如下

  1. 在上述java工程的pom.xml文件所在目录,执行以下命令
 
  1. 构建成功后,控制台提示以下信息

验证镜像是否可用

  1. 执行以下命令,即可启动容器
 
  1. 控制台显示springboot的启动信息
  1. 先执行命令docker rmi bolingcavalry/hellojib:0.0.1-SNAPSHOT将前面构建的镜像删除
  2. 在pom.xml文件所在目录执行以下命令即可
 
  1. 终端提示如下
 
  1. 执行命令docker images可见镜像已经在镜像仓库中了
 

构建到hub.docker.com

docker的中央仓库是 hub.docker.com ,jib也可以在镜像构建成功后自动推送到hub.docker.com网站,前提是您已经在该网站注册过,例如我已经注册过,账号是bolingcavalry,因此名为bolingcavalry/XXXXXXXX的镜像都可以推送到 hub.docker.com

  1. 在pom.xml文件所在目录执行以下命令即可自动推送到 hub.docker.com,其中bolingcavalry是我在hub.docker.com上的注册账号,123456是密码
 
  1. 终端信息如下

欢迎关注我的公众号:程序员欣宸


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号