什么是容器?

容器是软件包,它们包含了在任何环境中运行所需的全部文件和依赖项,包括应用程序代码、运行时、系统库和系统工具。通过对操作系统进行虚拟化,容器可以在开发、测试和生产环境中运行,也可以在从个人设备到公有云或私有数据中心的任何计算环境中运行。

容器的是如何工作的?

容器涉及多个组件。

  • 容器映像是完整、静态、轻量级且可执行的软件包,它们包含运行容器所需的全部信息。容器映像有多种格式,最常见的是 Open Container Initiative (OCI)。
  • 容器引擎可从存储库访问容器映像并运行它们。一些最常见的容器引擎包括 Docker、CRI-O、Containerd、runC、LXD 和 RKT。容器引擎可以在任何容器主机上运行,包括个人设备、物理服务器或云端。
  • 容器是已由容器引擎运行的容器映像。主机操作系统(通常是 Linux、Mac 或 Microsoft Windows)会限制容器访问 CPU、内存和存储等资源的能力,以防止某个容器消耗过多的物理资源。
  • 容器调度程序和编排技术用于管理容器的部署和运行。

容器化是什么?

容器化是指将软件代码与运行它所需的操作系统、库、配置文件和其他依赖项打包在一起的任务。通过提供“一次构建,随处运行”的软件开发方法,容器化应用程序使开发人员能够更快、更安全地创建和部署应用程序。

为什么需要容器?

随着数字化转型(指向 /glossary/what-is-digital-transformation 的链接)让整个世界变得更加互联互通,应用程序经常需要在许多不同的环境中运行。过去,从一个环境迁移到另一个环境时,许多应用程序必须进行修改才能正常运行,这通常是因为底层基础架构和依赖项的配置差异造成的。

容器通过将软件打包到包含运行应用程序所需的一切内容的轻量级基础架构中,解决了这一问题。通过这种方式,容器使开发人员和 IT 团队能够在不同环境中部署软件,而无需修改代码。这样一来,IT 团队便可以在不同机器和环境中实现一致的行为。开发人员可以对代码进行更改并为容器添加新的依赖项,而无需担心修正后的代码是否与各种环境不兼容。

容器与虚拟机有什么区别?

虚拟机 (VM) 是另一种虚拟化计算模型。虚拟机使用虚拟机管理程序来虚拟化运行服务器所需的物理硬件,每个虚拟机都包含一个来宾操作系统以及应用程序、库和依赖项。虚拟机会消耗大量系统资源,尤其是当多个虚拟机(每个虚拟机都有自己的来宾操作系统)在同一物理服务器上运行时。

而容器技术是在操作系统级别而不是硬件级别进行虚拟化,并且多个容器共享同一个主机操作系统或系统内核。因此,容器使用的内存仅为虚拟机所需内存的一小部分,因为容器共享操作系统内核。这也使得容器能够在几秒钟内启动,而虚拟机可能需要几分钟才能启动。

设计容器的目的是什么?

容器支持多种应用场景。

  • DevOps。容器使应用程序开发团队能够对 DevOps、持续集成和持续部署 (CI/CD) 以及无服务器框架采用云原生开发模式。
  • 微服务。容器的轻量级特性使其成为微服务架构的理想选择,在这种架构中,软件由多个松散耦合的小型服务组成。
  • 云计算。由于容器可在任何位置提供一致的性能,因此非常适合多云混合云部署,在这些部署中工作负载可能会在公有云和私有数据中心环境之间移动。
  • 云迁移。在 IT 团队准备应用程序进行云迁移时,容器通常被用于对这些应用程序进行现代化改造。对于将在迁移过程中重构的服务来说,容器也是理想候选方案。

容器的好处是什么?

容器为企业带来了许多好处,包括:

  • 更高的效率。由于容器与主机共享同一操作系统内核,因此容器比虚拟机更高效。
  • 管理更轻松。容器使得应用程序的快速部署、修补和扩展成为可能。
  • 工作负载可移植性。无论是在 Linux、Windows 或 Mac 操作系统上,还是在虚拟机或物理服务器上,亦或是在个人设备、本地数据中心和云端,容器使 IT 团队能够在任何位置部署和运行工作负载。
  • 一致的性能。容器可跨多个操作系统和平台提供可靠的性能。
  • 降低开销。与传统计算机和虚拟机相比,容器对内存、CPU 和存储的系统资源需求要少得多。这使得在同一基础架构上支持更多容器成为可能。
  • 优化了利用率。通过启用微服务架构,容器可以更轻松地精细部署和扩展应用程序组件,从而避免在单个组件无法管理工作负载时纵向扩展整个应用程序。

容器编排是什么?

容器编排是管理整个企业内多个容器部署的任务。容器编排程序是一个平台,可实现容器生命周期管理的自动化,包括调配和部署、资源分配、维持正常运行时间、纵向扩缩、服务发现、网络、存储和安全性等任务。

编排提供了对容器部署位置以及如何在多个容器之间分配工作负载的监测和控制能力。编排避免了手动管理容器的繁琐,并使 IT 团队能够有选择地或统一地将策略应用于一组容器。

Kubernetes 是最知名的容器编排平台,它可以部署在任何基础架构上,包括公有云、本地或边缘网络。Red Hat®OpenShift® 是企业级 Kubernetes 平台,可在任何基础架构上提供全堆栈、自动化操作以及用于构建容器的自助服务环境。

容器面临哪些安全威胁?

虽然容器使 IT 团队能够在任何位置部署软件并快速启动应用程序,但它们也带来了另一个安全问题。开发人员和 IT 团队可以采取多种措施来防止容器遭到攻击者利用,包括:

  • 采用安全最佳实践,并在应用程序/代码级别添加验证
  • 在 Kubernetes 等安全服务上运行容器
  • 在集群级别添加网络限制,以过滤掉未经授权的流量
  • 在云级别选择一个安全可靠的容器平台
  • 扫描容器映像以查找是否存在恶意软件
  • 在容器注册表中实施强有力的控制措施
  • 使用安全工具解决可能会在容器运行时激活的漏洞

常见问题

容器技术早在几十年前便已问世,但 Docker 于 2013 年重新引入了该技术,以满足现代计算时代的需求。

Docker 是一个开源平台,用于在通用操作系统上创建、部署和管理容器。Docker 平台负责对容器进行打包、调配和运行,它利用操作系统内核中的资源隔离功能在同一操作系统上运行多个容器。

Kubernetes 是一个开源容器编排平台,用于对容器化应用程序、工作负载和服务进行自动化、部署、扩展和管理。

Open Container Initiative (OCI) 是 Linux 基金会下的一个开放式治理结构,致力于为容器格式和运行时创建开放的行业标准。

客户为什么选择 Akamai

Akamai 是一家致力于支持并保护在线商业活动的网络安全和云计算公司。我们卓越的安全解决方案、出色的威胁情报和全球运营团队可提供深度防御,保护各地的企业数据和应用程序。Akamai 的全栈云计算解决方案可在海外分布广泛的平台上提供高性能且经济实惠的服务。众多全球企业信赖 Akamai,凭借我们卓越的可靠性、扩展性和专业技术,企业能够从容拓展业务。

探索所有的 Akamai 安全解决方案