美文网首页
Dockerfile制作的分层构建概念

Dockerfile制作的分层构建概念

作者: 程序员面试吧 | 来源:发表于2020-08-05 12:00 被阅读0次

    公司中的所有镜像都是要上传到harbor仓库上,一层一层的打镜像,在打的同时将镜像上传到harbor上

    第一层原始系统层(ubantu/debain/centos):

    这个目录结构一定要提前设计好,我先将官方的原始系统镜像pull下来,在这层的基础之上我们会加一些常用命令

    第二层常用命令层:

    否则后期还要在镜像中安装命令太过于麻烦,我们将这个安装常用命令的镜像称为公司的基础镜像叫做baseimgae,后期我们在打镜像的时候就不再调用官方的了,而是直接调用baseimgae。我们会在baseimgae这个镜像中不仅要安装命令,而且还要将我们的常用用户创建好,这个镜像创建好了之后再往下就会分叉了,

    第三层业务层(nginx、PHP、JDK、tomcat、mysql等业务):

    因为公司有很多业务,这一层就包括了各种服务镜像如jdk(java环境使用的镜像)、安装PHP的镜像、安装NGINX的镜像等等服务。然后这一层再提交为一层业务镜像,并在JDK的镜像层往下再打一层tomcat的业务层,在tomcet这层之后再打一层代码层。用来存放代码的APP1、APP2这一层只是编译安装了各个服务而已他们上面是没有任何代码和web页面数据的。

    第四层代码层(静态服务前端代码和tomcat的jsp代码等):

    然后再将这一层打出来的镜像就可以往公司的 Harbor 仓库进行上传了。

    宿主机:

    打完了这几层镜像之后,下面就是运行这些镜像的各个node节点也就是所谓的宿主机,要保证我们的宿主机能够在公司的harbor上去拉取镜像,当宿主机拉取完了镜像之后,我们就让该宿主机运行一个容器。然后再将所有nginx容器的数据都存放到NAS存储上,以实现数据同步。而NAS存储是先挂载在宿主机上,然后是宿主机将这个存储给各个容器去使用。由java容器往NAS存储上写数据,再由nginx容器来读NAS存储上的数据,所以他们实际上是看到的同一份数据

    总结:

    我们从镜像分层上,我们不会像docker官方那样一步打成我们的业务镜像,因为像官方那样一次性操作的步骤太多了,不利于后期dockerfile文件以及没做一个容器就要从新打一次镜像,不能实现dockerfile文件多次复用。

    所以我们会将每个步骤才分开,每个步骤都是一层镜像,这样后期某个业务想用某个环境的镜像直接就基于不同层的dockerfile文件进行调用

    更多文章和资料|点击下方文字直达 ↓↓↓
    阿里云K8s实战手册
    [阿里云CDN排坑指南] (https://mp.weixin.qq.com/s/tedaOubuMo6MjI9d5raclA)
    ECS运维指南
    DevOps实践手册
    Hadoop大数据实战手册
    Knative云原生应用开发指南
    OSS 运维实战手册

    相关文章

      网友评论

          本文标题:Dockerfile制作的分层构建概念

          本文链接:https://www.haomeiwen.com/subject/bevnrktx.html