基础镜像的继承管理和如何处理多个技术栈的应用版本?

有两个问题,基础镜像的继承管理和如何处理多个技术栈的应用版本。举个例子,我们对于CentOS 7,做了公司级别的基础OS镜像A,基于这个镜像加入了JDK成为镜像B,基于B加入了JBOSS成为C,在C的基础上再构建项目的APP镜像D。问题来了:1,有没有办法针对A镜像修改了,B,C和D去级连更新。2,由于...显示全部

有两个问题,基础镜像的继承管理和如何处理多个技术栈的应用版本。举个例子,我们对于CentOS 7,做了公司级别的基础OS镜像A,基于这个镜像加入了JDK成为镜像B,基于B加入了JBOSS成为C,在C的基础上再构建项目的APP镜像D。
问题来了:1,有没有办法针对A镜像修改了,B,C和D去级连更新。
2,由于是继承关系,各层软件的版本不同,导致镜像种类就特别多,例如JDK有3种,jboss有三种,那么镜像C就有九种,技术栈深了,命名又成为了问题。

求指导解决思路?

收起
参与7

查看其它 2 个回答bryan的回答

bryanbryan软件架构设计师金融研发

由于镜像是分层管理,层级越深,IO性能会降低,因此最好的办法就是各种环境分别制作不同image,如果有一些类似需求的,比如所有环境都使用java7,那么在base先构建java7,再在此基础上建构更上层的技术,一个原则:越通用的东西越先构建
1.尽量将Dockerfile放在空目录中,如果目录中必须有其他文件,则使用.dockerignore文件。
2.避免安装不必须的包
3.每个容器尽量只关注一个功能点。
4.尽量减少最小化镜像层数

银行 · 2017-06-27
浏览3427

回答者

bryan
bryan0514
软件架构设计师金融研发
擅长领域: 云计算容器容器云

bryan 最近回答过的问题

回答状态

  • 发布时间:2017-06-27
  • 关注会员:4 人
  • 回答浏览:3427
  • X社区推广