容器是包含在任何环境中运行所需的所有元素的软件包。这样一来,容器可以虚拟化操作系统,并在任何地方运行,不管目标环境是私有数据中心、公有云,还是开发者的个人笔记本电脑。从 Gmail 到 YouTube 和 Google 搜索,Google 的所有产品都是在容器中运行。 容器化让我们的开发团队可以快速行动、高效部署软件,并以前所未有的规模运营。我们不但积累了有关如何运行容器化工作负载的丰富知识,而且一直与社区积极分享这些知识:从早期为 Linux 内核贡献 cgroup,到开放我们内部工具所采用的设计源代码作为 Kubernetes 项目,均是如此。
容器是轻量级应用软件包,它还包含依赖项,例如编程语言运行时的特定版本和运行软件服务所需的库。
容器支持在操作系统级别轻松共享 CPU、内存、存储空间和网络资源,并提供了一种逻辑打包机制,以这种机制打包的应用可以脱离其实际运行的环境。
责任分离
容器化使开发者和 IT 运营团队的责任泾渭分明,开发者专注于应用逻辑和依赖项,而 IT 运营团队可以专注于部署和管理,不必为应用细节分心,例如具体的软件版本和配置。
工作负载可移植性
容器几乎能在任何地方运行,极大减轻了开发和部署工作量:在 Linux、Windows 和 Mac 操作系统中;在虚拟机或物理服务器上;在开发者的机器或本地数据中心的机器上;当然还有在公有云上。
应用隔离
容器会在操作系统级别虚拟化 CPU、内存、存储和网络资源,为开发者提供在逻辑上与其他应用相隔离的操作系统视图。
您可能已经很熟悉虚拟机:在主机操作系统上运行,可以访问底层硬件的客机操作系统,例如 Linux 或 Windows。容器经常与虚拟机 (VM) 进行比较。与虚拟机相似,容器也让您可以将应用与库和其他依赖项打包,提供独立环境来运行您的软件服务。但是,我们从下方可以看到,两者的相似性仅此而已,因为容器为开发者和 IT 运营团队提供了更加轻量级单元,具有众多优势。
容器提供了一种逻辑打包机制,以这种机制打包的应用可以脱离其实际运行的环境。利用这种脱离,不管目标环境是私有数据中心、公有云,还是开发者的个人笔记本电脑,您都可以轻松、一致地部署基于容器的应用。
敏捷开发
容器使开发者可以更快地移动数据,无需担心依赖项和环境。
高效运营
容器是轻量化的,可让您仅使用所需的计算资源。这使您可以高效运行应用。
在任何地方运行
容器几乎可以在任何地方运行。无论您希望在什么地方运行软件,都可以使用容器。