容器的历史发展

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:

容器技术的发展经过了以下几个阶段。以下是对其中几个关键节点做一个总结。

 

1979年 — Chroot

容器技术的概念可以追溯到1979年的UNIX Chroot。这项功能将Root目录及其它子目录变更至文件系统内的新位置,且只接受特定进程的访问,其设计目的在于为每个进程提供一套隔离化磁盘空间。1982年其被添加至BSD。

 

 

Chroot只是提供了对进程文件目录虚拟化的功能,不能够防止进程恶意访问系统。这个问题在FreeBSDGails容器技术中得以解决。

  

2000年 — FreeBSD Jails

FreeBSD Jails与Chroot的定位类似,不过其中包含有进程沙箱机制以对文件系统、用户及网络等资源进行隔离。通过这种方式,它能够为每个Jail、定制化软件安装包乃至配置方案等提供一个对应的IP地址。Jails技术为FreeBSD系统提供了一种简单的安全隔离机制。它的不足在于这种简单性的隔离也同时会影响Jails中应用访问系统资源的灵活性。

 

 

2004年 — Solaris Zones

Solaris Zone技术为应用程序创建了虚拟的一层,让应用在隔离的Zone中运行,并实现有效的资源管理。每一个Zone 拥有自己的文件系统,进程空间,防火墙,网络配置等等。

 

Solaris Zone技术真正的引入了容器资源管理的概念。在应用部署的时候为Zone配置一定的资源,在运行中可以根据Zone的负载动态修改这个资源限制并且是实时生效的,在其他Zone不需要资源的时候,资源会自动切换给需要的资源的Zone,这种切换是即时的不需要人工干预的,最大化资源的利用率,在必要的情况下,也可以为单个Zone隔离一定的资源。

 

 

2008年 — LXC

LXC指代的是Linux Containers,其功能通过Cgroups以及Linux Namespaces实现。也是第一套完整的Linux容器管理实现方案。在LXC出现之前, Linux上已经有了类似 Linux-Vserver、OpenVZ 和 FreeVPS。虽然这些技术都已经成熟,但是这些解决方案还没有将它们的容器支持集成到主流 Linux 内核。相较于其它容器技术,LXC能够在无需任何额外补丁的前提下运行在原版Linux内核之上。目前LXC项目由Canonical有限公司负责赞助及托管。

 

LXC采用以下内核功能模块。

  • Kernel namespaces (ipc, uts, mount, pid, network and user)

  • Apparmor and SELinux profiles

  • Seccomp policies

  • Chroots (using pivot_root)

  • Kernel capabilities

  • CGroups (control groups)

 

 

2013年 — Docker

Docker项目最初是由一家名为DotCloud的平台即服务厂商所打造,其后该公司更名为Docker。Docker在起步阶段使用LXC,而后利用自己的Libcontainer库将其替换下来。与其它容器平台不同,Docker引入了一整套与容器管理相关的生态系统。其中包括一套高效的分层式容器镜像模型、一套全局及本地容器注册表、一个精简化REST API以及一套命令行界面等等。

 

与Docker具有同样目标功能的另外一种容器技术就是CoreOS公司开发的Rocket. Rocket基于App Container规范并使其成为一项更为开放的标准。

 

 

2016年 — Windows容器

微软公司也于2016年正式推出Windows容器。Windows 容器包括两个不同的容器类型。

 

Windows Server 容器 

通过进程和命名空间隔离技术提供应用程序隔离。 Windows Server 容器与容器主机和该主机上运行的所有容器共享内核。

 

Hyper-V 容器 

通过在高度优化的虚拟机中运行每个容器,在由 Windows Server 容器提供的隔离上扩展。 在此配置中,容器主机的内核不与 Hyper-V 容器共享。Hyper-V容器是一个新的容器技术,它通过Hyper-V虚拟化技术提供高级隔离特性。

 

 

本文转自写个博客骗钱博客51CTO博客,原文链接http://blog.51cto.com/dadonggg/1948025如需转载请自行联系原作者

菜鸟东哥
相关文章
|
弹性计算 Kubernetes 负载均衡
容器技术基础-容器编排技术的崛起
容器技术基础-容器编排技术的崛起
容器技术基础-容器编排技术的崛起
|
Kubernetes Cloud Native 虚拟化
容器技术基础-容器技术介绍与特点
容器技术基础-容器技术介绍与特点
容器技术基础-容器技术介绍与特点
|
存储 消息中间件 分布式计算
容器持久化存储-容器有状态应用调研报告
容器持久化存储-容器有状态应用调研报告
51993 5
容器持久化存储-容器有状态应用调研报告
|
存储 C语言 C++
C++常见容器一网打尽
C++常见容器一网打尽
|
数据可视化 芯片 混合部署
容器在2022年的技术研发重点
结合2021咨询研报及个人身处行业的理解
241 0
|
存储 运维 Cloud Native
容器技术基础介绍
容器技术基础介绍
363 0
容器技术基础介绍
|
存储 运维 Prometheus
当容器应用越发广泛,我们又该如何监测容器?
随着容器技术蓬勃发展与落地推行,越来越多企业的业务运行于容器中。作为主流部署方式之一,容器将团队的任务和关注点分割开,开发团队只需关注应用程序逻辑和依赖项,而运维团队只需关注部署和管理,无需再为特定软件版本和应用程序特定配置等应用程序细节而提心吊胆。这意味着开发团队和运维团队可以花费更少时间进行调试上线,将更多时间用于向最终用户交付新功能。容器使企业可以更加轻松的提高应用程序可移植性和操作弹性。据 CNCF 的调研报告显示,73% 受访者正在使用容器来提高生产敏捷性并加快创新速度。
当容器应用越发广泛,我们又该如何监测容器?
|
Web App开发 Kubernetes 负载均衡
Ele
|
数据安全/隐私保护 容器 Docker
参与冬季实战营《零基础容器技术实战》
参与活动:零基础容器技术实战
Ele
141 0
|
人工智能 缓存 Kubernetes
容器技术的未来发展趋势
容器技术在未来的发力点是什么?容器的未来有哪些想象空间
1213 0