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

来源: 云巴巴 2022-01-21 15:24:14

1月20日,深信服大云售前专家YJ在信服云《云集技术学社》系列直播课上进行了《容器技术和Docker介绍》的分享,详细介绍了容器技术的发展、以Docker为代表的容器技术生态以及容器技术的应用场景。以下是他分享内容摘要。

看点一

容器和Docker发展历史

容器技术发展是从上世纪70年代开始,在算力飞速发展的背景下,科学家围绕着如何提高资源利用率进行研究,因此产生了最早的资源隔离技术,如chroot。资源隔离技术持续发展到21世纪初期,Namespace、Cgroup等资源隔离技术加入Linux内核,形成了内核标准的LXC容器技术。

2010年前后,云计算逐步发展,共享经济和互联网的趋势越来越明显,要求企业对客户的需求能够精准把控和快速满足,因此出现了敏捷迭代。在敏捷迭代的场景下,如果每次都需要工程师重复地去规划底层资源的隔离,配额,环境配置等,整体流程就无法实现敏捷。

基于这些背景,一个叫做Solomon Hykes的工程师提出了现代化容器的解决方案,他把这些技术整合到一个开箱即用的软件中,并且加入了诸多如用户友好的管理界面、规模化管理、存储格式等功能,这些能力如今都成为了容器的标准能力。

2014到2017年,Google等头部厂商先后开源围绕容器生态的解决方案,并试图掌握技术主导权,由此分化出CNCF和OCI等不同的技术组织和标准。

2018年后,CNCF主导的容器生态获得巨大成功,驱动了容器技术为基础的新一代PaaS的发展,孵化出了如应用开发运维能力(DevOps),应用架构(微服务),无服务器架构等领域的新方案。

以上就是容器技术大概的发展历史。提起容器技术大家会联想到Docker,其实容器技术并不特指Docker,但Docker在整个容器技术领域有着非常重要的作用,主要表现在三个方面

一是Docker是容器技术的开创者,Docker在LXC的基础上降低了容器技术使用的复杂度,提出了大规模使用的管理运维方案。开创性提出了镜像文件实现了应用和运行环境的“一次封装到处运行”,进而又推动技术的普及度。

二是Docker是容器技术的推广者,DockerHub镜像仓库构建了基于镜像的开发者社区和生态,让全球开发者都参与到生态建设和分享中来,为容器技术的普及做出了极大贡献,Docker也凭此获得高速发展和领导者地位。

三是Docker是标准的推动者,Docker贡献和领导了容器镜像和运行时的OCI标准制定,加速了容器技术的发展。同时还贡献了containerd,参与了CRI标准制定,推动了容器生态和组织的发展,最终达到工业级应用。

尽管近些年Docker在容器技术主导权的地位争夺中发展不太乐观,但Docker经过十年经营,在市场认知度、学习资源的完善度、客户应用的成熟度等方面仍具有巨大优势,是了解容器发展历史和技术的首推学习对象。

看点二

Docker为代表的容器技术介绍

当谈论Docker的时候,并不是谈论单独的产品,而是Docker公司针对容器技术、管理和生态的一整套解决方案

Docker由RunC、Containerd、Docker Engine、Docker Compose、Docker Swarm等部分组成: 

RunC(low-level)是一个轻量级的工具,用来运行容器,也是标准化的产物,是在围绕容器格式和对运行时制定的一个开放的工业化标准。

Containerd(high-level)是容器虚拟化技术,从Docker中剥离出来,形成开放容器接口(OCI)标准的一部分,起到承上启下的作用,对上接受命令参数的内容,对下调用RunC实际的操作容器服务。

Docker Engine是执行Docker标准的后台应用程序(Dockerd),用来构建镜像,运行容器,管理网络和存储等。它的API不遵循CRI标准。任何第三方平台与其集成必须开发对接其接口(Docker-shim)。

Docker Compose是基于YAML规范使用脚本来定义和简化多容器部署的工具。Docker Swarm是Docker集群管理平台。

Docker的核心概念是镜像,镜像含有启动Docker容器所需的文件系统结构及内容。可以说,镜像是Docker设计精巧的、引爆容器技术的核弹。

镜像有五个特性:一是封装,Docker镜像将应用及其类库,配置、环境等依赖全部打包紧耦合到一个文件实现应用迁移,让应用到任意环境都可开箱并立即正常运行。

二是分层,Docker镜像由基础层(base image)和应用层构成,而应用层可以根据对底层的依赖程度,抽象出不同的基础层。

三是共享,基于分层文件系统,不同的层可以被共享和依赖,使得镜像通过标准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层虚拟化,降低了虚拟机性能。

容器安全也是现在一个比较重要的领域,目前容器安全主要注重四个方面,一是镜像安全,如果使用了不安全的外部镜像依赖,镜像中有系统漏洞、缺陷,或者被恶意植入病毒和后门等,都会对容器造成较大威胁。二是容器逃逸,由于容器是基于OS共享的架构,如果攻击者利用容器漏洞,获取OS root权限,文件系统权限等,都会对整个系统造成极大危害。三是配置安全,即对容器引擎,镜像仓库,Kubernetes等没有进行正确的权限配置等造成的入侵。四是漏洞管理,针对镜像中的类库文件漏洞,如apache log4j2漏洞,需要对镜像文件进行及时识别和更新。

容器技术在深入到企业级应用时,还要有巨大的知识需要掌握,比如管理调度、大规模网络的网络性能、容器日志运行监控等,这些都需要对相应的解决方案进行深入学习。另外,由于容器技术的特性和生态发展,云服务厂商也在普遍使用容器技术构建企业级PaaS平台。

容器的应用场景主要有六个:一是快速开发,由于公有镜像仓库有着庞大的开源社区和开放的镜像资源,可以让开发者实现开箱即用。二是多云应用,因为容器与IaaS解耦以及容器本身轻量的特性让容器更便于去做多云的迁移。三是应用隔离,在同一个服务器里需要运行多个应用时,可以使用容器去做运行环境和依赖的隔离。四是微服务架构,容器与微服务架构轻量、敏捷弹性的特性适配。五是能力沉淀,利用容器技术可以将前期架构的运行环境封装起来,方便后来的技术人员开箱即用,这也是对企业能力的沉淀。六是持续集成和部署,容器可以保障开发测试环境的一致性,实现快速迭代和部署。

更多产品了解

欢迎扫码加入云巴巴企业数字化交流服务群

产品交流、问题咨询、专业测评

都在这里!

 

评论列表

为你推荐

容器技术的发展与容器技术的预测

容器技术的发展与容器技术的预测

随着容器进行市场的发展,有下列四个前景分析预测值得我们考虑。

2020-03-09 16:16:41

业务容器化改造实践(二)

业务容器化改造实践(二)

本篇文章用于介绍利用Rancher、Harbor构建Kubernetes集群和私有镜像仓库,共同组成容器云管理平台,后续将以此平台为基础实施业务的容器化改造。

2019-09-18 11:06:36

你至少要知道的5件关于容器安全的事

你至少要知道的5件关于容器安全的事

随着容器继续进入信息技术主流,领导者将越来越需要确保容器准备好迎接黄金时间,而怀疑论者恐惧的最大影响因素问题之一是一个熟悉的因素:安全。“最大的误解是容器本质上是不安全的,”Cyxtera副总裁兼副总裁David Emerson说。

2020-03-09 17:13:51

云集技术学社|带你了解DevOps技术原理

云集技术学社|带你了解DevOps技术原理

不同企业的DevOps模式是不同的。DevOps一般是从组织、技术、流程三个方面发挥作用。

2021-12-10 14:38:17

在未来Docker容器云真的即将消失吗?

在未来Docker容器云真的即将消失吗?

Docker和“容器”是近年来备受关注的词汇,但它们似乎又在快速跌入谷底。

2020-03-09 15:28:26

分布式、容器化背景下的银行IT人要关注的5个挑战和4个要求

分布式、容器化背景下的银行IT人要关注的5个挑战和4个要求

随着 AI 、大数据、云计算、分布式、容器化等 IT 新技术日新月异地发展,以造价高昂的 IOE 架构为基础的传统银行 IT 业也受到了极大地冲击,传统银行 IT 基础架构正面临诸多由稳态逐步向敏态转型带来的挑战。

2020-03-06 13:44:59

严选云产品

瑞云3DCAT实时渲染云服务平台 瑞云3DCAT实时渲染云服务平台3DCAT实时云渲染基于云计算理念,将三维应用部署在云端运行,云端资源进行图形数据的实时计算和输出,并把运行结果用 “流”(Raystreaming)的方式推送到终端呈现的一种解决方案,终端用户可随时随地交互式访问各种三维应用。
移动云云视频平台 移动云云视频平台,公有云具备资源边界大、业务扩展方便等特征,与视频云客户业务需求高度契合。目前,接近90%的视频云解决方案采用公有云方式部署。除超低延迟、弱网优化等底层方案外,在视频数据快速增长的背景下,基于人工智能、大数据技术的内容审核、版权保护等解决方案正在逐步成为各大点播、直播平台的新“刚需”。
智齿科技在线客服系统 智齿客服,最懂业务场景的客服机器人为您服务,金牌客服永不离线,节省85%以上人力成本.机器人辅助人工,客服效率提升100%。五分钟快速上线,更契合客户服务多平台服务场景。众多优秀企业用户正在使用智齿科技提供的在客服机器人,智能客服,机器人问答系统,在线机器人问答,聊天机器人系统,机器人智能云客服,AI机器人客服系统,智齿科技为企业在线客服团队用户提速增效、优化服务体验。
亚派myDHR数字化服务平台 亚派myDHR数字化服务平台大量的ECHAR可视可组件。卡片可以应用于分组看板,机构图组件基于战略目标,可以分解不同管理层级的绩效地图。
浪潮云对象存储 对象存储(Object Storage Service,简称OSS)提供安全稳定可靠且高性价比的云存储服务。所存文件至少创建三份副本并跨机房存储,可通过鉴权机制实现文件访问权限控制;按需付费,更可大幅节省存储成本
腾讯云视立方·短视频SDK 腾讯云视立方·短视频 SDK ,是腾讯云视立方·音视频终 端引擎的重要组成版本,基于腾讯云强大的上传、存储、转码、分发的云点播能力,提供集成了采 集、剪辑、拼接、特效、分享、播放等功能的客户端 SDK,并整合腾讯的 IM、视频内容识别等技 术,帮助用户聚焦业务本身,快速轻松实现基于移动端的短视频应用。

推荐视频

甄选10000+数字化产品 为您免费使用

申请试用