3 Containers in the clouds illustration
Jump to section

什么是 Linux 容器?

复制 URL

2024 年全球技术趋势

在我们第十年发布的《2024 年全球技术趋势报告》中,红帽再次与大家分享我们的行业洞察,重点关注六个 IT 和非 IT 投资重点,以及阻碍进展的三大因素。

Linux® 容器是与系统其他部分隔离开的一个或一组进程。运行这些进程所需的所有文件都由另一个特定镜像提供,意味着从开发到测试再到生产整个过程中,Linux 容器都是可移植且一致的。因此,相对于依赖重复传统测试环境的开发渠道,使用容器速度要快得多。容器比较普遍也易于使用,因此也成了 IT 安全方面的重要组成部分。

假设您在开发一个应用。您使用的是一台笔记本电脑,而且您的开发环境具有特定的配置。其他开发人员身处的环境配置可能稍有不同。您正在开发的应用不止依赖于您当前的配置,还需要某些特定的库、依赖项和文件。与此同时,您的企业还拥有标准化的开发和生产环境,有着自己的配置和一系列支持文件。您希望尽可能多在本地模拟这些环境,而不产生重新创建服务器环境的开销。因此,您要如何确保应用能够在这些环境中运行和通过质量检测,并且在部署过程中不出现令人头疼的问题,也无需重新编写代码和进行故障修复?答案就是使用容器。

 

什么是 Linux 容器?

容器可以确保您的应用拥有必需的库、依赖项和文件,让您可以在生产中自如地迁移这些应用,无需担心会出现负面影响。实际上,您可以将容器镜像中的内容(使用 Buildah 等开源工具创建)视为 Linux 发行版的一个安装实例,因为其中完整包含 RPM 软件包、配置文件等内容。但是,安装容器镜像发行版,要比安装新的操作系统副本容易得多。这样可以避免危机,做到皆大欢喜。

虽然这只是一个常见情况的示例,但在要求可移植性、可配置性和隔离的情况下,我们可以利用 Linux 容器解决很多难题。Linux 容器的价值在于,它能加速开发并满足新出现的业务需求。在某些情形中(如通过 Apache Kafka 进行实时数据流处理),容器是不可或缺的,因为它们是提供应用所需的可扩展性的唯一途径。无论基础架构是在企业本地还是在云端,或者混合使用两者,容器都能满足您的需求。当然,选择正确的容器平台也同样重要。

红帽® OpenShift® 包括您进行混合云企业容器以及 Kubernetes 开发和部署所需的一切资源。

容器不就是虚拟化吗?实际上不完全如此。更确切的说法应该是:两者为互补关系。我们用一种简单方式来思考一下两者之间的关系:

  • 虚拟化使得您的操作系统(Windows 或 Linux)可同时在单个硬件系统上运行。
  • 容器则可共享同一个操作系统内核,将应用进程与系统其他部分隔离开。例如:ARM Linux 系统运行 ARM Linux 容器,x86 Linux 系统运行 x86 Linux 容器,x86 Windows 系统运行 x86 Windows 容器。Linux 容器具有极佳的可移植性,但前提是它们必须与底层系统兼容

 

虚拟机与容器的区别

这意味着什么?对于新手而言,虚拟化会使用虚拟机监控程序模拟硬件,从而使多个操作系统能够并行运行。但这不如容器轻便。事实上,在仅拥有容量有限的有限资源时,您需要能够进行密集部署的轻量级应用。Linux 容器在本机操作系统上运行,与所有容器共享该操作系统,因此应用和服务能够保持轻巧,并行化快速运行。

Linux 容器是我们开发、部署和管理应用方式的又一次飞跃。Linux 容器镜像提供了可移植性和版本控制,确保能够在开发人员的笔记本电脑上运行的应用,同样也能在生产环境中正常运行。黄金镜像是一种特殊的容器镜像类型,可为系统配置创建一致可靠的基线。相较于虚拟机,Linux 容器在运行时所占用的资源更少,使用的是标准接口(启动、停止、环境变量等),并会与应用隔离开;此外,作为大型应用(包含多个容器)的一部分时更加易于管理,而且这些多容器应用可以跨多个云环境进行编排。

甚至还存在将容器编排与虚拟机管理相结合的工具。通过 2020 年红帽全球峰会全程追踪了解更多信息,其中包括专门针对这类工具的分组会议。

作为一个开源容器平台,Linux 容器项目(LXC)提供了一组工具、模板、库和语言绑定。LXC 采用简单的命令行界面,可改善容器启动时的用户体验。

LXC 提供了一个操作系统级的虚拟化环境,可在许多基于 Linux 的系统上安装。在 Linux 发行版中,可能会通过其软件包存储库来提供 LXC。

我们现在称为容器技术的概念最初出现在 2000 年,当时称为 FreeBSD jail,这种技术可将 FreeBSD 系统分区为多个子系统(也称为 Jail)。Jail 是作为安全环境而开发的,系统管理员可与企业内部或外部的多个用户共享这些 Jail。

2001 年,通过 Jacques Gélinas 的 VServer 项目,隔离环境的实施进入了 Linux 领域。在完成了这项针对 Linux 中多个受控制用户空间的基础性工作后,Linux 容器开始逐渐成形并最终发展成了现在的模样。

很快,更多技术结合进来,让这种隔离方法从构想变为现实。控制组(cgroups)是一项内核功能,能够控制和限制一个进程或多组进程的资源使用。而 systemd 初始化系统可设置用户空间,并且管理它们的进程,cgroups 使用该系统来更严密地控制这些隔离进程。这两种技术在增加对 Linux 的整体控制的同时,也成为了保持环境隔离的重要框架。

进入 Docker 技术时代

2008 年,Docker 公司凭借与公司同名的容器技术通过 dotCloud 登上了舞台。Docker 技术带来了很多新的概念和工具,包括可运行和构建新的分层镜像的简单命令行界面、服务器守护进程、含有预构建容器镜像的库以及注册表服务器概念。通过综合运用这些技术,用户可以快速构建新的分层容器,并轻松地与他人共享这些容器。

我们可通过 3 个主要标准,来确保各种容器技术间的互操作性,即 OCI 镜像、分发和运行时规范。通过遵循上述规范,社区项目、商用产品和云技术提供商可以构建可互操作的容器技术(可将您自行构建的镜像,推送至云技术提供商的注册表服务器——完成这一操作后,镜像才能正常工作)。当前,红帽和 Docker 等公司都是开放容器计划(OCI)的成员,致力于实现容器技术的开放行业标准化。

容器很受欢迎,那它的安全性又如何呢?容器的安全性会受到很多可变因素的影响——您需要保护好容器管道及应用、部署环境和基础架构;您也需要制定相应的计划,以便与企业的安全工具和策略进行整合。如果您需要制定计划,让我们来帮忙!

长久以来,红帽与开源社区一直在协同合作,以求让容器等技术变得安全、稳定可靠。这是我们的工作。我们同时为这些技术提供相应支持。因此,如果您需要帮助,我们随时待命。

红帽技术旨在助您排除所有不确定因素,确保您正确使用容器。无论您是想为团队提供容器化开发平台、在一流操作系统上运行容器基础架构,还是想为容器生成的大量数据寻找适合的存储解决方案,红帽解决方案都能满足您的特殊需求。

继续阅读

文章

容器与虚拟机

Linux 容器和虚拟机(VM)都是封装型计算环境,里面组合了各种 IT 组件并独立于系统的其余部分。

文章

什么是容器编排?

容器编排是指自动化容器的部署、管理、扩展和联网。

文章

什么是 Linux 容器?

Linux 容器是与系统隔离开的一系列进程,它从单独的镜像运行,并由该镜像提供支持进程所需的全部文件。

详细了解容器

产品

企业级应用平台,包含一系列久经测试的服务,可在您选择的基础架构上将应用推向市场。

相关资源

培训

免费培训课程

"通过红帽来运行容器"技术概述

免费培训课程

容器、Kubernetes 和红帽 OpenShift 技术概述

免费培训课程

利用微服务架构开发云原生应用