Docker|云集技术学社|容器技术和Docker介绍( 二 )


三是共享,基于分层文件系统,不同的层可以被共享和依赖,使得镜像通过标准API操作进行复制时,只需要获取数据不同的层即可,不需要所有依赖都被复制(底层依赖已经存在情况下,会通过层的UUID进行校验)。
四是轻量,多个容器通过同一个镜像创建时,不需要对镜像进行复制(对比虚拟机),只需要将镜像层挂载为只读,然后再加上一个可读写层即可。
五是写时复制,只有在可读写层的数据变化且需要保存写入新的层的时候,Docker镜像才会生成新的镜像层。写时复制与分层机制可以大大减少磁盘空间的占用和容器启动时间。
Docker基于镜像去创建容器的具体步骤是:首先将BaseImage内容作为容器的rootfs以只读方式挂载。然后Docker Daemon继续解析镜像的其它层,如ADD,ENV等信息,对容器的运行时环境进行初始化。初始化后Docker Daemon继续解析镜像文件,执行CMD信息中的命令并执行,使得容器进入运行态。
Docker在计算时会用到Namespace和Cgroup技术,Docker会基于Namespace技术进行包括网络、文件系统和环境等在内的资源隔离。Linux Cgroup就是Linux内核中用来为进程设置资源限制的一个重要功能,全称是Linux Control Group,主要作用是限制一个进程能够使用的资源上限,包括CPU、内存、磁盘、网络带宽等等。
镜像仓库是用来存储和分发容器镜像的应用。企业和个人对产出的镜像文件可以集中管理,便于进行权限控制、安全控制、能力共享、生态建设等。镜像仓库可以对基于容器镜像的应用进行统一的版本,分发管理等。镜像仓库可以简化和优化企业基于容器的开发测试管理和集成,运维流程等(如CICD)。
看点三:容器其他重要概念与应用场景除了容器技术生态外,容器还有着其他的重要概念。Docker和虚拟机都是资源隔离的方案。Docker是基于OS的资源隔离技术,Docker Engine占用资源很少,物理机资源基本上被容器应用和物理机操作系统使用。虚拟机多了一层Guest OS(虚拟机操作系统),若一台物理机上跑10台虚拟机,则有10个Guest OS的资源损耗,Hypervisor层虚拟化,降低了虚拟机性能。

Docker|云集技术学社|容器技术和Docker介绍
文章插图
容器安全也是现在一个比较重要的领域,目前容器安全主要注重四个方面,一是镜像安全,如果使用了不安全的外部镜像依赖,镜像中有系统漏洞、缺陷,或者被恶意植入病毒和后门等,都会对容器造成较大威胁。二是容器逃逸,由于容器是基于OS共享的架构,如果攻击者利用容器漏洞,获取OS root权限,文件系统权限等,都会对整个系统造成极大危害。三是配置安全,即对容器引擎,镜像仓库,Kubernetes等没有进行正确的权限配置等造成的入侵。四是漏洞管理,针对镜像中的类库文件漏洞,如apache log4j2漏洞,需要对镜像文件进行及时识别和更新。
容器技术在深入到企业级应用时,还要有巨大的知识需要掌握,比如管理调度、大规模网络的网络性能、容器日志运行监控等,这些都需要对相应的解决方案进行深入学习。另外,由于容器技术的特性和生态发展,云服务厂商也在普遍使用容器技术构建企业级PaaS平台。
容器的应用场景主要有六个:一是快速开发,由于公有镜像仓库有着庞大的开源社区和开放的镜像资源,可以让开发者实现开箱即用。二是多云应用,因为容器与IaaS解耦以及容器本身轻量的特性让容器更便于去做多云的迁移。三是应用隔离,在同一个服务器里需要运行多个应用时,可以使用容器去做运行环境和依赖的隔离。四是微服务架构,容器与微服务架构轻量、敏捷弹性的特性适配。五是能力沉淀,利用容器技术可以将前期架构的运行环境封装起来,方便后来的技术人员开箱即用,这也是对企业能力的沉淀。六是持续集成和部署,容器可以保障开发测试环境的一致性,实现快速迭代和部署。
以上就是本次直播的主要内容。对云计算感兴趣的IT朋友可以关注“深信服科技”公众号回顾往期,了解更多云计算知识。
雷峰网