0

0

Linux容器的发展及其未来趋势

絕刀狂花

絕刀狂花

发布时间:2025-05-16 09:30:02

|

947人浏览过

|

来源于php中文网

原创

linux容器是一种在单个linux主机上提供多个独立linux环境的操作系统级虚拟化技术。与虚拟机(vm)不同,容器不运行专用客户操作系统。相反,它们共享主机操作系统内核,并利用客户操作系统库来提供所需的操作系统功能。由于没有专用操作系统,容器的启动速度比vm快得多。

Linux容器的发展及其未来趋势

容器利用Linux内核特性,如名称空间、Apparmor、SELinux概要文件、chroot和CGroups,来提供类似VM的隔离环境。Linux安全模块确保从容器访问主机和内核的权限得到适当管理,以避免任何入侵活动。此外,如果容器可以在相同的CPU体系结构上运行,则容器可以从其主机操作系统运行不同的Linux发行版。

通常,容器提供了基于各种Linux发行版创建容器映像的方法、用于管理容器生命周期的API、用于与API交互的客户端工具、获取快照的特性、以及将容器实例从一个容器主机迁移到另一个容器主机等。

以下是从维基百科和其他来源提取的容器历史简短摘要:

1979年-chroot容器的概念早在1979年就开始使用UNIX chroot。这是一个UNIX操作系统系统调用,用于更改进程的根目录,并将其作为子文件到文件系统中的新位置,该位置仅对给定进程可见。此功能的想法是为每个进程提供隔离的磁盘空间。1982年晚些时候,这被添加到BSD。

2000年-FreeBSD Jails FreeBSD Jails是由Derrick T. Woolworth在2000年为R&D Associates for FreeBSD推出的早期容器技术之一。它是一个类似于chroot操作系统的系统调用,包括用于隔离文件系统、用户、网络的其他进程沙盒功能。因此,它可以为每个Jails、自定义软件安装和配置等提供分配IP地址的方法。

2001年-Linux VServer Linux VServer是另一种jail机制,可用于安全地分区计算机系统上的资源(文件系统,CPU时间,网络地址和内存)。每个分区称为安全上下文,其中的虚拟化系统称为虚拟专用服务器。

2004年-Solaris容器 Solaris Containers是针对x86和SPARC系统推出的,首次于2004年2月在Solaris 10的build 51 beta版中公开发布,随后在Solaris 10,2005的第一个完整版本中发布。Solaris Container是系统资源控制和边界的组合区域提供的分离。区域在单个操作系统实例中充当完全隔离的虚拟服务器。

2005年-OpenVZ OpenVZ与Solaris Containers类似,并使用修补的Linux内核来提供虚拟化,隔离,资源管理和检查点。每个OpenVZ容器都有一个独立的文件系统,用户和用户组,进程树,网络,设备和IPC对象。

2006年-流程容器 Process Containers于2006年在Google实施,用于限制、统计和隔离进程集合的资源使用(CPU、内存、磁盘I/O、网络等)。后来,它被重命名为控制组,以避免Linux内核上下文中“容器”一词的多重含义混淆,并合并到Linux内核2.6.24中。这显示了谷歌在容器技术上的早期参与,以及他们是如何做出贡献的。

2007年-控制组 如前所述,控制组AKA cgroup是由Google实现的,并于2007年添加到Linux内核中。

2008年-LXC LXC代表Linux容器,它是Linux容器管理器的第一个、最完整的实现。它是使用cgroup和Linux名称空间实现的。LXC是在liblxc库中交付的,并为Python 3、Python 2、Lua、Go、Ruby和Haskell中的API提供了语言绑定。与其他容器技术不同,LXC在Vanilla Linux内核上工作,不需要任何补丁。今天LXC项目由佳能有限公司赞助并在此托管。

2011年-守望者 Warden在2011年由CloudFoundry实施,在初始阶段使用LXC,后来又用自己的实现取而代之。与LXC不同,Warden并没有与Linux紧密结合。相反,它可以在任何可以提供隔离环境的操作系统上工作。它作为守护程序运行,并提供用于管理容器的API。

2013年-lmctfy lmctfy是Google容器堆栈的开源版本,提供Linux应用程序容器。谷歌启动了这个项目的目的是提供有保证的性能,高资源利用率,共享资源,过度承诺以及容器的近零开销。今天Kubernetes使用的cAdvisor工具是由lmctfy项目启动的。lmctfy的最初版本于2013年10月发布,2015年,Google决定向libcontainer提供核心lmctfy概念和抽象。结果现在LMCTFY没有进行积极的开发。

Android开发培训PPT版
Android开发培训PPT版

Android一词的本义指“机器人”,Android是Google于07年11月5日宣布的基于Linux平台开源手机操作系统名称,该平台由操作系统、中间件、用户界面和应用软件组成。在国内,联想、戴尔、多普达、飞利浦、中兴、三星、摩托罗拉、等厂商已经推出基于Android平台的智能手机。 在3G应用开发领域,Android的发展前景不容小视,也将会成为未来主流的手机操作系统。

下载

libcontainer项目最初由Docker启动,现在已经转移到Open Container Foundation。

2013年-Docker 截至2016年1月,Docker是最受欢迎和最广泛使用的容器管理系统。它是作为一个名为dotCloud的平台即服务公司的内部项目开发的,后来改名为Docker。与Warden类似,Docker在初始阶段也使用了LXC,后来用它自己的libcontainer库替换了LXC。与任何其他容器平台不同,Docker引入了用于管理容器的整个生态系统。这包括一个高效的分层容器映像模型,一个全局和本地容器注册表,一个干净的REST API,一个CLI等。在稍后阶段,Docker还主动实现了一个名为Docker Swarm的容器集群管理解决方案。

2014年-Rocket Rocket是一个与Docker非常相似的项目,用于修复他们在Docker中发现的一些缺陷。CoreOS提到,他们的目标是提供比Docker更严格的安全和生产要求。更重要的是,它是在AppContainer规范上实现的,是一个更加开放的标准。除了Rocket,CoreOS还开发了Docker和Kubernetes使用的其他几种与容器有关的产品。

2016年-Windows容器 微软还主动在2015年为基于Windows的应用程序(称为Windows容器)向Microsoft Windows Server操作系统添加容器支持。这将与Microsoft Windows Server 2016一起发布。通过这种实现,Docker可以在Windows上本地运行Docker容器,而无需运行虚拟机来运行Docker(早期的Docker使用Linux VM在Windows上运行)。

截至今天,业界有一个重要的趋势,即从VM迁移到容器以部署软件应用程序。其主要原因是与VM相比,容器提供的灵活性和低成本。谷歌多年来一直使用容器技术与Borg和Omega容器集群管理平台大规模运行Google应用程序。更重要的是,Google通过实施cgroup和参与libcontainer项目为容器空间做出了贡献。在过去几年中,Google可能已经在使用容器的性能,资源利用率和整体效率方面获得了巨大的收益。最近,微软没有在Windows平台上进行操作系统级虚拟化,立即采取措施在Windows Server上实现对容器的本机支持。

在生产环境中,Docker、Rocket和其他容器平台不能在单个主机上运行,原因是它们暴露于单个故障点。当一个容器集合在单个主机上运行时,如果主机失败,在该主机上运行的所有容器也将失败。为了避免这种情况,需要使用容器主机集群。解决这个问题的第一个最开放源码的容器集群管理平台之一是Apache Mesos。它最初是作为一个研究项目在加州大学伯克利分校开发的,后来在2012年左右转移到了阿帕奇(Apache)。Google采取了类似的步骤来实现一个先进的、开放源码的容器集群管理系统,名为Kubernetes。Docker还启动了一个名为Docker Swarm的解决方案。今天,这些解决方案还处于非常早期的阶段,可能需要几个月才能完成全部功能集,并在生产环境中广泛应用。

微服务是另一项突破性的技术,而不是一种使用容器进行部署的软件体系结构。微服务是一个Web服务的轻量级实现,与标准Web服务相比,它的启动速度非常快。这是通过在一个服务中打包一个功能单元并将其嵌入到一个轻量级的Web服务器二进制文件中来实现的。

通过考虑上述事实,我们可以预测,在未来几年内,容器可能会占用虚拟机,有时可能会完全取代它们。去年,我与一些企业合作,在POC层面实施基于容器的解决方案。很少有人想接受挑战并将其投入生产。随着容器集群管理系统变得更加成熟,这可能会很快发生变化。

原文标题《The Evolution of Linux Containers and Their Future》

作者:Imesh Gunaratne

译者:lemon

不代表云加社区观点,更多详情请查看原文链接

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

395

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

575

2023.08.10

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

395

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

575

2023.08.10

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

739

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1128

2023.07.27

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

799

2023.08.01

windows查看端口被占用的情况
windows查看端口被占用的情况

windows查看端口被占用的情况的方法:1、使用Windows自带的资源监视器;2、使用命令提示符查看端口信息;3、使用任务管理器查看占用端口的进程。本专题为大家提供windows查看端口被占用的情况的相关的文章、下载、课程内容,供大家免费下载体验。

454

2023.08.02

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

10

2026.01.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 9.5万人学习

CSS3 教程
CSS3 教程

共18课时 | 4.9万人学习

Sass 教程
Sass 教程

共14课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号