Linux 容器 (LXC) 是一类基于 Linux 操作系统的容器。它们包含在各种不同的计算环境和管道中运行一个或多个特定流程所需的所有文件。
如今,Linux 容器已成为现代软件开发的核心工具,能够将应用程序及其所有依赖项轻松打包。许多现代应用程序(如 Docker、 Kubernetes、 Red Hat OpenShift、Microsoft Azure 等)采用 Linux 容器,以获得更高的效率、可移植性和安全性。
与所有基于 Linux 构建的应用和软件工具一样,Linux 容器是开源的——这意味着其源代码可免费供所有人使用。Linux 容器及其众多功能作为 Linux 发行版的组成部分,由全球开发者社区共同维护和更新。
Linux 容器在采用 Linux 操作系统的单一主机上,为应用程序提供隔离运行环境。其功能核心是命令行界面(又称 shell),为用户提供控制 Linux 系统的文本交互接口。
Linux 容器的五大核心特性奠定了其独特功能的基础。
虚拟机需配备独立操作系统和内核才能运行。而容器可共享宿主机的 Linux 内核,因而具有更轻量化、更快速的启动与运行特性。
Linux 容器的隔离功能利用了称为 Linux 内核命名空间的功能,来为不同进程隔离某些资源。例如,进程 ID 命名空间(PID 命名空间)用于隔离同一容器中的进程,使其不会相互影响。
Cgroups(控制组缩写)是一种资源管理工具,允许用户对进程进行层级分组,并控制其可访问的资源范围。例如,守护进程(控制容器生命周期的进程)常由 Cgroups 进行管控。
容器映像是软件包,包含运行应用程序所需的一切,包括代码、运行时、系统库和系统工具。容器映像使其支持的应用程序具有高度的可扩展性,无需手动设置即可在任何环境中运行。
容器运行时是一种允许容器在主机系统(例如 Linux)内运行的软件。容器运行时用于管理容器的生命周期。容器运行时使用允许应用程序相互通信的应用程序编程接口 (API),充当容器编排程序(如 Kubernetes)之间的中介,负责管理容器化应用程序及运行应用程序的主机系统。
容器化的概念自 20 世纪 70 年代就已经存在,当时 Unix 引入了一种称为 chroot 的系统。Unix 是一种流行的操作系统,它允许用户控制计算机或电子设备上的硬件和软件资源。Chroot 的独特之处在于它允许隔离系统上的进程,这对于容器技术至关重要。
尽管其他技术(如 AIX 工作负载分区和 FreeBSD 监狱)也能提供类似容器的进程隔离与系统虚拟化功能,但均未实现同等程度的广泛采用。2013 年开源容器管理平台 Docker 的推出,彻底奠定了容器在现代应用生态中的主导地位,使容器的创建、管理和部署变得前所未有的便捷。
容器在现代应用程序市场的主导地位怎么强调都不为过,尤其是对于云原生和微服务应用程序而言。根据最近的一份报告,去年全球容器市场估值为 58.5 亿美元。预计未来 5 年,该值将以 33% 的复合年增长率 (CAGR) 增长。1
应用程序容器是运行单个进程和工作负载的容器,使用户能够创建和删除容器而不影响其他进程或应用程序功能。应用程序容器(尤其是 Docker)对于当今众多用户所依赖的应用程序(例如 Facebook、MS Word、Zoom 等)的蓬勃发展至关重要。虽然存在较新的开源 Linux 内核技术,例如 Ubuntu 和 system-nspawn,但 Linux 容器仍在广泛使用且有很多优点。
作为开源项目,Linux 容器在全球开发者社区的推动下持续演进,不断新增功能并优化用户体验。其核心优势包括:
由于其众多特性和优势以及 Linux 开源发行版模型的成功,Linux 容器已部署在许多行业并拥有许多用例。以下是一些最受欢迎的。
微服务架构是一种云原生 软件开发方法,通过将单个应用拆分为更小的独立组件构建。因其高速性、可扩展性和灵活性,该方案已被广泛应用于众多软件开发环境。
Linux 容器是微服务架构的理想载体,开发者可便捷地部署独立微服务,并通过协同工作构建大型复杂应用。
DevOps 开发运维和持续整合/持续交付 (CI/CD) 是软件开发人员用来实现软件开发和交付自动化的一系列实践。
Linux 容器通过以下重要方式强化 DevOps 和持续集成/持续交付 (CI/CD)。首先,确保 CI/CD 全流程中生产环境的一致性,使软件发布时功能符合预期。
其次,自动化应用的构建、测试和部署任务,帮助开发者节省时间和资源。最后,相比其他虚拟化技术更轻量化,助力 DevOps 团队降低 IT 基础设施成本以按时完成项目。
大多数现代企业需要在混合的私有和公有云平台上部署核心业务应用程序,这种方法被称为混合云架构。
Linux 容器凭借其可移植性和资源利用效率,成为融合公有云与私有云的混合云环境的理想选择。它们能提升混合云环境运行效能,显著增强应用性能,并最大限度降低运营成本。
作为正在进行的数字化转型计划的一部分,许多企业需要开发和改进其应用程序的功能,不断寻求新的技术和工具为其带来市场优势。
根据 IBM 商业价值研究院的调查,83% 的高管已将应用程序现代化作为其业务战略的核心。Linux 容器通过采用基于旧版代码和基础设施构建的应用程序并隔离其依赖关系和要求来加速这一工作,以便它们能够轻松有效地在现代环境中部署。
利用 AI 和自动化的强大功能,主动解决整个应用程序堆栈中的问题。
使用开发运维软件和工具,在多种设备和环境中构建、部署和管理云原生应用程序。
通过我们的云咨询服务持续实现应用现代化,加速业务敏捷性与增长——支持任意平台部署。
1. 应用程序市场规模和趋势(2024 年),Grandview Research,2024 年