什么是 Linux 容器?

Shipping containers stacked

维基共享资源

简而言之,Linux 容器以一种将应用程序与它们运行所在的主机系统隔离的方式包含应用程序。容器允许开发人员将应用程序与其所需的所有部件(例如库和其他依赖项)打包在一起,并将其作为一个软件包发布。 它们旨在使开发人员和系统管理员在以快速且可复制的方式将代码从开发环境转移到生产环境时,更容易提供一致的体验。

技术简报
了解如何保护您的容器平台
跨堆栈
在某种程度上,容器的行为类似于虚拟机。对于外部世界,它们看起来像是它们自己完整的系统。但是,与虚拟机不同,容器不需要复制整个操作系统,而只需要复制它们运行所需的各个组件,而不是创建整个虚拟操作系统。这显着提高了性能并减小了应用程序的大小。 它们的运行速度也快得多,因为与传统的虚拟化不同,该过程本质上是在其主机上本机运行,只是周围增加了一层保护。

重要的是,许多驱动容器技术的技术都是开源的。这意味着它们拥有广泛的贡献者社区,有助于促进相关项目的广泛生态系统的快速发展,以满足各种不同组织(无论大小)的需求。

为什么对容器如此感兴趣?

毫无疑问,最近对容器技术产生兴趣的最大原因之一是Docker开源项目,这是一个命令行工具,使开发人员和系统管理员都可以轻松创建和使用容器,类似于Vagrant使开发人员可以更轻松地轻松探索虚拟机的方式。

Docker 是一个命令行工具,用于以编程方式定义代码中 Linux 容器的内容,然后可以像程序的源代码一样轻松地对其进行版本控制、复制、共享和修改。

容器还引发了人们对微服务架构的兴趣,这是一种用于开发应用程序的设计模式,其中复杂的应用程序被分解为更小的、可组合的部件,这些部件协同工作。 每个组件都是单独开发的,然后应用程序只是其组成组件的总和。 每个部件或服务都可以存在于容器内部,并且可以根据需要独立于应用程序的其余部分进行扩展。

如何编排容器?

仅仅将您的应用程序放入容器中可能不会给您组织的运营方式带来巨大的转变,除非您还更改部署和管理这些容器的方式。 用于管理和组织 Linux 容器的一种流行系统是Kubernetes

[下载我们的容器入门指南]

Kubernetes 是一个用于管理容器集群的开源系统。 为此,它提供了用于部署应用程序、根据需要扩展这些应用程序、管理对现有容器化应用程序的更改以及帮助您优化容器下方底层硬件使用的工具。 它被设计为可扩展的,并且具有容错能力,允许应用程序组件根据需要重新启动并在系统之间移动。

IT 自动化工具(如 Ansible)和平台即服务项目(如 OpenShift)可以添加其他功能,以简化容器的管理。

如何保持容器安全?

容器通过将应用程序与主机操作系统上的其他应用程序隔离来增加安全性,但仅仅容器化应用程序不足以使其保持安全。 计算机安全专家 Dan Walsh 因其在 SELinux 方面的工作而闻名,他解释了开发人员正在努力确保 Docker 和其他容器工具确保容器安全的一些方法,以及目前 Docker 中的一些安全功能及其功能。

在哪里可以了解更多信息?

以下是一些您可能感兴趣的其他资源。

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.