什么是 Linux 容器?

复制 URL

Linux® 容器是与系统其他部分隔离的一个或一组进程。运行这些进程所需的所有文件均由另一个镜像提供,因此从开发到测试再到生产的整个过程中,Linux 容器都具有可移植性和一致性。因而,与依赖重复的传统测试环境的开发管道相比,使用容器的速度要快得多。将安全防护内置于容器管道并为基础架构增添防护,可以保障容器的可靠性、可扩展性和可信度。您还可以轻松地在公共云、私有云、本地和混合云环境和数据中心之间迁移容器化应用,同时保持行为和功能的一致性。

试用 Linux 容器

假设您在开发一个应用。您在使用笔记本电脑开发,并且您的环境具有特定的配置。其他开发人员的配置可能略有不同。您正在开发的应用依赖于相应配置及其特定的库、依赖项和文件。与此同时,您的企业还拥有标准化的开发和生产环境,以及相应的配置和一系列支持文件。您希望尽可能多在本地模拟这些环境,而不产生重新创建服务器环境的开销。有一种方法可确保您的应用能够在这些环境中运行和通过质量检测,且在部署过程中不会出现令人头疼的问题,也无需重新编写代码和进行耗时的灾难恢复,那就是使用容器。 

容器有利于明确划分职责范围,减少开发和运维团队间的冲突。这样,开发人员可以全心投入应用开发,而运维团队则可专注于基础架构维护。由于容器基于开源技术构建,因此最新技术一经推出,您便可立即从中受益。包括 PodmanSkopeoBuildahCRI-OKubernetesDocker 在内的容器技术,可帮助您的团队简化、加速、快速扩展和编排应用的开发和部署。

红帽资源

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

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

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

2001 年,通过 Jacques Gélinas 的 VServer 项目,隔离环境的实施进入了 Linux 领域。这为 Linux 中多个受控制用户空间奠定了基础,Linux 容器最终发展成了现在的模样。

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

进入 Docker 技术时代

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

我们可通过三个主要标准来确保各种容器技术间的互操作性:OCI 镜像、分发和运行时规范。通过遵循上述规范,社区项目、商用产品和云技术提供商可以构建可互操作的容器技术(可将您自行构建的镜像推送至云技术提供商的镜像仓库服务器)。如今,红帽和 Docker 等公司都是开放容器计划(OCI)的成员,OCI 是一个开放的治理组织,旨在为容器格式、镜像规范和运行时制定开放的行业标准。 

详细了解开放容器计划

容器共享相同的操作系统内核,并将应用进程与系统的其他部分隔离,因此整个容器能够在各种开发、测试和生产配置中迁移、打开和使用。因为容器是轻量级且可移植,它们为加快开发和满足业务需求创造了机会。 容器编排是指您在企业中管理这些部署的方式。

Kubernetes 是一种可自动实施 Linux 容器操作的开源平台。它可以消除部署、扩展和监控容器化应用的运行状况所涉及的许多手动流程。Kubernetes 允许您根据需求动态分配资源,从而提高性能并防止过度置备。Kubernetes 可为您提供一个便捷有效的平台,让您可以在物理机或虚拟机集群上调用和运行容器。 Kubernetes 架构将集群划分为多个组件,这些组件协同工作以维护集群的定义状态。红帽® OpenShift® 是云原生计算基金会(CNCF)认证的 Kubernetes 产品,它以 Kubernetes 为基础,构建了一个完整的平台,能够在混合云环境中以一致的方式交付云原生应用。

详细了解如何将红帽 OpenShift 用作现代应用平台

虚拟化通过软件创建一个抽象层,使得计算机硬件组件能够在虚拟机监控程序的引导下被划分为多个虚拟计算机。这些虚拟机(VM)是容器能够在其中运行的环境,但容器不受制于虚拟环境。容器是处理虚拟化的一种方式,由于不需要使用虚拟机监控程序,因此,您可以更快地置备资源并更迅速地推出新应用。一些软件(如红帽® OpenShift® 虚拟化)既能编排容器,又能管理虚拟机,但容器和虚拟机是互补却又截然不同的两种技术:

  • 您可利用虚拟化以单个物理硬件系统为基础创建多个模拟环境或专用资源。
  • 容器共用同一个操作系统内核,且将应用进程与系统的其他部分隔离。例如:ARM Linux 系统运行 ARM Linux 容器,x86 Linux 系统运行 x86 Linux 容器,x86 Windows 系统运行 x86 Windows 容器。Linux 容器具有极佳的可移植性,但前提是它们必须与底层系统兼容。

虚拟机的能力是有限的,因为创建它们的虚拟机监控程序受制于物理机的资源。另一方面,容器共享相同的操作系统内核和软件包应用。容器对操作系统进行虚拟化,而非对硬件进行虚拟化,因此尽管容器和虚拟机在资源隔离与分配能力方面具有相似性,但它们的运作方式却有所不同。 

在 IT 基础架构中,也可以将容器和虚拟机结合使用。在混合环境中,容器化应用和基于虚拟机的应用可以在同一基础架构上运行,这种灵活的方式能够适应不同的需求。这就是所谓的容器原生虚拟化。企业组织可以利用现有虚拟机基础架构来托管容器化应用,或者逐步将工作负载迁移到容器中,无需对整个 IT 架构进行彻底重组。 

详细了解红帽 OpenShift 虚拟化

默认情况下,没有什么是安全的。容器安全涉及诸多动态环节,您需要保护容器管道和应用以及部署环境和基础架构,还需要制定与企业安全工具和策略集成的计划。静态的安全防护策略和检查清单无法满足企业中容器的扩展需求,因此您需要了解如何在容器管道中构建更完善的安全防护机制。

DevSecOps 方法将文化、自动化、平台设计与安全防护相结合,并且将安全防护视为各团队的共同责任。容器安全防护策略应解决通信路径和访问控制中的隔离与信任问题,并使用恶意软件扫描和镜像签名工具来应对容器在运行时可能出现的潜在漏洞。DevSecOps 方法有助于在整个 IT 生命周期内保持一致的安全性。

详细了解容器安全防护

无服务器是一种云原生开发模型,可使开发人员专注构建和运行应用,而无需管理服务器。“无服务器”一词并非是指没有服务器。它是指将服务器从应用开发中抽离出来了。云服务提供商负责服务器基础架构的置备、维护和扩展等日常工作。 

在无服务器架构中,开发人员只需将代码打包到容器中即可进行部署。部署之后,无服务器应用即可响应需求,并根据需要自动扩展或缩减。公共云提供商的无服务器产品通常使用一种事件驱动执行模型来按需计量。因此,当无服务器功能闲置时,不会产生费用。

详细了解红帽 OpenShift Serverless

您可以针对多种工作负载和用例部署容器。容器为您的团队提供了云原生开发模式所需的底层技术,因此您可以轻松上手 DevOpsCI/CD(持续集成和持续部署)并实现无服务器

基于容器的应用可以在高度分散的云架构中运行。 应用运行时提供的工具可支持集开发、交付、集成和自动化于一体的统一环境。

您还可以在容器中部署集成技术,从而轻松扩展应用和数据的连接方式,例如通过 Apache Kafka 实现实时的数据流传输。如果您正在构建微服务基础架构,那对于每个微服务及连接这些微服务的服务网格网络来说,容器都是其理想部署单元。

长久以来,红帽与开源社区一直在协同合作,以求让容器技术变得安全、稳定、可靠且受支持。红帽也是 Docker 和 Kubernetes 代码库的第二大贡献者,同时还与 OCI云原生计算基金会两大机构保持着合作,致力于改善容器的功能、可靠性和安全性。与所有开源项目一样,红帽向上游代码库贡献代码并提供改进方案,共同分享所有进步。

红帽以容器为中心的解决方案和培训课程为您提供了基础架构、平台、管控能力和专业知识,助您充分利用容器的所有优势。无论您是想为开发团队提供容器化开发平台,在经济高效的操作系统上运行容器基础架构,还是想为容器生成的大量数据寻找合适的存储解决方案,红帽解决方案都能满足您的需求。

红帽 OpenShift 为容器和关键应用提供了一种可扩展的安全性与可靠性解决方案。凭借其全面的工具和服务套件,红帽® OpenShift® 可精简从构建和部署到运行和管理的整个应用开发生命周期。它有助于降低应用现代化工作的复杂程度,包括使用 AI 跨多云和混合云环境构建应用以及对应用进行现代化升级,从而提高开发人员和 IT 运维团队的效率和生产力。 

红帽企业 Linux 可为您的 IT 之旅奠定可靠的基础,无论是迁移到云端,利用边缘和容器的强大功能,还是探索 AI 工作负载。开发人员可以通过访问容器工具、数据库、编程语言和运行时来简化应用开发,同时在不同环境中获得一致的体验。在组装定制且经过强化的红帽企业 Linux 操作系统镜像时,您可以借助容器工具降低复杂性,并提高可移植性和标准化程度。

红帽企业 Linux 的镜像模式是一种利用容器技术来构建、部署和管理操作系统的简单且一致的方法。使用管理应用的容器工具和工作流来管理操作系统,从而在不同团队之间打造一致的体验和通用语言。镜像模式有助于保持服务器配置的一致性,消除可能导致系统不稳定和安全风险的偏差,从而应对偏移挑战。它还有助于通过不可变的系统镜像来减少攻击面,从而增强安全性,确保您清楚每个镜像包含的内容。 

中心

红帽官方博客

获取有关我们的客户、合作伙伴和社区生态系统的最新信息。

所有红帽产品试用

我们的免费试用可让您亲身体验红帽的产品功能,为获得认证做好准备,或评估某个产品是否适合您的企业。

扩展阅读

什么是 Kubernetes Java 客户端?

Kubernetes Java 客户端是一个支持使用 Java 编程语言与 Kubernetes 进行接口的客户端库。

AWS 上的 K8s:自助式应用平台与托管式应用平台比较

一文了解 AWS 上 K8s 的功能与优势。使用 AWS 上的 Kubernetes,您可以在开发时灵活地自行配置和管理部署,大规模运行应用,添加新功能, 无缝迁移应用, 随时随地运行。

什么是托管控制平面?

使较小的节点能够运行控制平面,从而降低集群的成本,助力实现真正的混合云,

容器 相关资源

相关文章