欢迎来到云服务器租用和托管数据中心

网络技术

虚拟化与容器化

了解虚拟化与容器化之间的差异可以提高组织的可扩展性并降低运营成本。在本文中,我们将讨论这两种创建虚拟包的方法之间的具体差异,以及这两种有价值的解决方案之间的一般差异。

虚拟化与容器化

关于服务器虚拟化的讨论不可避免地围绕VMware、Hyper-V以及在较小程度上还围绕 Xen 和 KVM 展开。但另一个重要的内容是Docker。

如果我们谈论 Docker,我们就是在谈论容器化——这与基于管理程序的服务器虚拟化有点不同。但是将应用程序封装在具有操作环境的容器中可以获得将应用程序加载到虚拟机上的许多好处:两者都可以放在任何合适的物理机上并运行,而无需担心依赖关系。

Docker 与 VMware

当然,Docker 和 VMware 之间的一个关键实际区别在于 Docker 是一个基于 Linux 的系统,它利用了LXC,一个用于 Linux 内核包含特性的用户空间接口。

LXC 的目标是创建一个尽可能接近标准 Linux 安装的环境,但不需要单独的内核。正如 linuxcontainers.org 网站所说:“LXC 容器通常被认为介于 chroot 和成熟的虚拟机之间。”

虚拟化与容器化

因为 Docker 是建立在 LXC 之上的,所以它只能在 Linux 环境中运行,并且只能运行 Linux 应用程序。因此,您可以忘记在 Windows 或任何其他可以愉快地在传统虚拟机管理程序上运行的操作系统上运行的应用程序。

另一个关键区别是,Docker 容器不是一个独立的系统,而是与运行主机的操作系统共享它使用的 Linux 内核。它还与也在主机上运行的其他容器共享内核。操作系统的共享部分是只读的,而每个容器都有自己的写入挂载。

容器化的好处

那么容器化与成熟的服务器虚拟化相比有什么好处呢?你什么时候会使用一个而不是另一个?

容器化的主要好处之一是,您通常可以在主机上打包比在虚拟机上更多的容器。这是有道理的,因为每个虚拟机本身就是一个独立的系统,拥有自己的操作系统和虚拟化硬件,以及分配给它的独特资源。如果每个 VM 的大小为 10Gb,那么 10 个 VM 将占用 10×10 = 100Gb 的资源。

但是使用一个 10Gb 的容器并运行其中的 10 个,甚至 100 个,您将不会使用任何接近 100Gb 的资源。这是由于所有正在发生的共享。

实际上,所有容器只共享一个操作系统(严格来说是一个内核)。而且没有虚拟化硬件——只有容器中的一个小应用程序和操作环境。这意味着您可以在主机上运行比运行成熟的虚拟机更多的容器。

虚拟化与容器化

共享内核和其他资源还有一个附加效果,那就是容器可以在不到一秒的时间内启动。VM 的情况并非如此,VM 需要完整的虚拟系统启动,并且可能需要更长的时间才能启动。

Canonical(Ubuntu 的赞助商)的负责人 Mark Shuttleworth 重申,速度是一个额外的好处。“Canonical 支持关键内核和用户空间工作,使您可以创建行为就像 VM 一样的容器——你在其中有 root——即使你只是系统上的普通非 root 用户。比 KVM 更快更轻,”他说。

还有其他好处。例如,您可以在 AWS 和 Azure 公共云上运行 Docker 容器,并且容器易于共享。这对测试和开发团队特别有用——这是 Docker 最常被提及的潜在受益者之一。

容器化还不能替代成熟的服务器虚拟化

但对 VMware 和其他公司来说,好消息是容器化并不能替代成熟的基于管理程序的服务器虚拟化——至少现在还不能。

这是因为这个虚拟化世界被极其复杂的管理基础架构所包围,它允许您存储、启动和运行虚拟机,在主机之间实时迁移它们,创建高可用性集群等等。VMware 的 vCenter、Microsoft 的 System Center Virtual Machine Manager 和其他第三方管理产品等产品经过多年的发展。

尽管 Google、Red Hat、CoreOS、IBM 和微软都在开发开源Kubernetes Docker 管理系统,但目前还没有 Docker 可比的东西,该系统已迅速发展成为企业 IT 的主要工具。

这一切都意味着 Docker 虚拟化技术在未来绝对值得关注。

Copyright © 2003-2020 香港服务器和服务器租用 梦飞数据中心 版权所有