前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot-2.3镜像方案为什么要做多个layer

SpringBoot-2.3镜像方案为什么要做多个layer

原创
作者头像
程序员欣宸
修改2021-04-28 10:22:37
3280
修改2021-04-28 10:22:37
举报
文章被收录于专栏:实战docker实战docker

欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos

背景

在这里插入图片描述
在这里插入图片描述
  • 问题来了:搞这么多layer干啥?接下来以图文方式,您一起理解docker镜像layer对java开发者的的作用;

声明

本文的目标是通过图文帮助java开发者理解docker镜像的layer作用,内容和实际情况并未完全保持一致,例如基础镜像的layer没有提到,而且java镜像的layer可能不止业务镜像、配置文件、依赖库这三层;

常见角色

使用docker时,有三个常见角色:

  1. 镜像制作者:本文中就是SpringBoot应用开发者,写完代码把应用做成docker镜像;
  2. docker公共镜像仓库:镜像制作者将镜像推送到仓库给大家使用;
  3. 镜像使用者:从镜像仓库将镜像下载到本地使用;

接下来的故事围绕上述三个角色展开;

从制作到使用的过程

  1. 如下图,SpringBoot应用开发者,写完代码把应用做成docker镜像,该镜像的TAG是1.0,此时开发者将镜像推送到公共仓库时,一共要推送三个layer:
在这里插入图片描述
在这里插入图片描述
  1. 接下来,使用者要下载镜像,就从镜像仓库下载三个layer:
在这里插入图片描述
在这里插入图片描述
  1. 此时,三个角色拥有的内容都是一样,都是三个layer:
在这里插入图片描述
在这里插入图片描述
  1. 这时候SpringBoot开发者修改了业务代码,于是做了个新的镜像(TAG是2.0),然后推送到镜像仓库;
  2. 重点来了:因为只改了业务代码,因此只有业务class的layer是新的,只有这个layer会被推送到仓库,如下图:
在这里插入图片描述
在这里插入图片描述
  1. 对镜像使用者来说,如果之前下载过1.0的镜像,此时要用2.0镜像的话,只要从仓库下载最新的业务class的layer即可:
在这里插入图片描述
在这里插入图片描述
  1. 最终结果如下,公共仓库和镜像使用者都已最小的代价得到了2.0镜像:
在这里插入图片描述
在这里插入图片描述

可见,使用多个layer的镜像,在镜像的分发过程中,相比单一layer的镜像会更加高效,尤其是使用hub.docker.com这样的外网公有仓库,以及频繁发布新版的场景下;

关于容器和镜像的环境

如果您不想自己搭建kubernetes环境,推荐使用腾讯云容器服务TKE:无需自建,即可在腾讯云上使用稳定, 安全,高效,灵活扩展的 Kubernetes 容器平台;

如果您希望自己的镜像可以通过外网上传和下载,推荐腾讯云容器镜像服务TCR:像数据加密存储,大镜像多节点快速分发,跨地域镜像同步

你不孤单,欣宸原创一路相伴

  1. Java系列
  2. Spring系列
  3. Docker系列
  4. kubernetes系列
  5. 数据库+中间件系列
  6. DevOps系列

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

微信搜索「程序员欣宸」,我是欣宸,期待与您一同畅游Java世界...

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 欢迎访问我的GitHub
  • 背景
  • 声明
  • 常见角色
  • 从制作到使用的过程
  • 关于容器和镜像的环境
  • 你不孤单,欣宸原创一路相伴
  • 欢迎关注公众号:程序员欣宸
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档