容器基础镜像的编写及最佳实践.docx
《容器基础镜像的编写及最佳实践.docx》由会员分享,可在线阅读,更多相关《容器基础镜像的编写及最佳实践.docx(27页珍藏版)》请在优知文库上搜索。
1、容器始于镜像,在容涔作为云原生架构上的工作负载发挥其应用价值之前,它以镜像的形式存在并流转。相比于攻击生命周期较短的容器,聪明的攻击拧往往会选择投毒镜像,这样不管是基于该饿像运行容器抑或是生成新的镜像,全部都将含有恶意成分。不然了解饯像,就无法建立对镜像的管理体系。镜像有哪些种类?镀像里有哪些内容?镜像该由谎来构建又如何构建?通过本内容学习您将清楚了解到容器镜像的施本概念,容器镜像在容器云平台系统组成中的位巴,镜像主要特点以及容器镜像和虚拟机镜像的区别。基于以上基本概念了解的前提下,本文延伸讲解容卷债像的分类,各类镜像如何在企业业务中使用,健护.其中最重要部分是给大家讲解各类债像的构建方式以及
2、僮像构建的最佳实豉.最后前要总结如何通过自动化的方式进行俵像创建管理具体实践中每个容器云平台的实现方式不同,大家可以在工作中根据业务需要进一步丰寓。镜像是容器之源,在文末介绍了从镜像到容器运行起来的过程,结合操作系统核心技术解择了如何通过其中涉及的各类技术实现容器的虚拟化。息之,通过本内容的学习可以零基础了解镜像的基本概念,同时逐步掌握镜像的构建原理以及镜像构建方面的企业最佳实践,为大家在以后工作中创建镜像羹定技术基础.1基本概念1.1 Docker系统组成整体D。Cker的系统包括以下主要组成部分,包括D。Ckerdient、Dockerdaemon.DockerregistryDOCker
3、镜像、DOCker容涔,他们之间的关系如下图:Docker架构主要分为客户端和服务端,客户端负责发起请求,服务端负责接受,解析和处理请求,图示中的DockerClient即为DoCker客户端的一个命令行工具,用户通过DockerClient与DockerDaemon进行通信井返回结果给用户.也可以使用其他工具通过DockerApi与DockerDaemon通信.拿一个简单的拉取潦像并运行容器的过程举例便于大家更好的理解容器系统架构.从上图中我们可以看到,当daemon接收到由CIient发起的dockerrun等运行容器指令时,docker系统先会由registry(本地镜像仓库)中拉取磷像
4、,图示中拉取了ubuntu:14.04镜像.当由UbUntU:14.04镜像启动容器时,UbUntU:14.04潦像的镜像层Iayer内容将作为容器的rootfs;而UbUntU:14.04镜像的yaml文件(json格式),会由Dockerdaemon解析成为该docker运行起来后的各项配置,并提取出其中的容器执行入口CMD信息,以及容器进程的环境变量ENV信息,最终初始化容器进程。当然,容器进程的执行人口来源于镜像提供的rootfs.在传统的1.inux操作系统内核启动时,首先挂载一个只读的rootfs,当系统检测其完整性之后,再将其切换为读写模式.而在Docker架构中,当Docker
5、daemon为Docker容器挂载rootfs时,沿用了1.inux内核启动时的做法,即将rootfs设为只读模式。但d。Cker运行的下一步产生了与传统IinUX的差别,这里要特别注意,在挂载完毕之后,docker系统利用联合接载(UniOnmount)技术在已有的只读rootfs上再挂载一个读写层。可读写的层处于Docker容器文件系统的最顶层,其下可能联合挂载了多个只读的层,只有在Docker容器运行过程中文件系统发生变化时,才会把变化的文件内容写到可读写层,并如同photoshop中的多层覆表一样,由最顶层的新的文件内容覆盖掉只读展中的旧版本文件(旧版本文件依旧存在只是被盖住了).1.
6、2 D。Cker镜像Docker镜像是一个只读的Docker容器模板,含有启动Docker容器所需的文件系统结构及其内容,是启动一个Docker容器的基础,但是需要重点注意镜像中不包括系统内核,在下文也会讲述这是容器与虚拟机最关键的区别之一。Docker镜像的文件内容(rootfs)以及一些运行D。Cker容器的配置文件组成了Docker容器的睁态运行环境。可以这么理解Q。Cker镜像是Docker容器的睁态视角,D。Cker容器是D。Cker镜像的运行状态.镜像是容器之源,如果大家熟悉java,镜像和容器的关系类似class文件和java对象的关系。1.3 Docker镜像特点-分层Dock
7、er镜像是采用分层的方式构建的,每个镜像都由一系列的镜像层”组成。分层结构是Docker镜像如此轻信的审要原因.当需要修改容器镜像内的某个文件时,只对处于最上方的读写层进行变动,不覆写下层已有文件系统的内容,已有文件在只读展中的原始版本仍然存在,但会被读写展中的新版本所隐藏.当使用dockercommit提交这个修改过的容器文件系统为一个新的镜像时,保存的内容仅为最上厩读写文件系统中被吏新过的文件.分房达到了在不同的容器说像之间共享镜像层的效果。- 骂时且制(不变性)Docker镜像使用了写时豆制(CoPy-On-Write)的策略.如果要在多个容器之间共享镜像,每个容器在启动的时候并不需要单
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 容器 基础 编写 最佳 实践
