这是虚拟化巨头的冲突:一个是虚拟机,另一个是容器化技术。实际上,两者都是互补的技术——因为硬件虚拟化和容器化各有其独特的品质,并且可以协同使用以获得组合优势。让我们来看看它们如何相互叠加,以及如何将两者结合使用以实现最大的敏捷性。
容器与虚拟机
简单地说,容器提供操作系统级别的进程隔离,而虚拟机提供硬件抽象层的隔离(即硬件虚拟化)。因此,在IaaS用例中,机器虚拟化非常适合,而容器最适合打包/运输便携式和模块化软件。同样,这两种技术可以相互结合使用以获得额外的好处——例如,可以在VM内创建Docker容器,以使解决方案具有超便携性。
这家行业领先的虚拟化软件供应商几乎不需要介绍,因为它的产品和解决方案已经为一代虚拟化技术铺平了道路。vSphere是VMware的旗舰虚拟化套件,包含大量工具和服务,例如ESXi、vCenterServer、vSphereClient、VMFS、SDK等。该套件可用作各种云计算虚拟化操作系统,为Windows、*nix等客户操作系统提供虚拟操作平台。
vSphere套件的核心是ESXi:使硬件虚拟化成为可能的主要管理程序技术。管理程序允许多个操作系统使用自己的一组专用资源在单个主机上运行,因此每个客户操作系统似乎都有CPU、内存和其他系统资源专用于自己使用。ESXi直接在裸机服务器硬件上运行——不需要预先存在的底层操作系统。安装后,它会创建并运行自己的由3个接口组成的微内核:
虽然是早期的虚拟化先驱,但VMware不再是唯一的市场:MicrosoftHyper-V、CitrixXenServer和OracleVirtualBox也是流行的虚拟机管理程序技术。越来越多的企业也将Docker视为潜在的VMware颠覆者,但正如我们很快就会看到的那样——尽管席卷了虚拟化领域,但它并不直接与VMware竞争。
码头工人
Docker项目的主要目的是允许开发人员通过使用容器更轻松地创建、部署和运行应用程序。显然——对于DevOps和CI/CD计划——应用程序的可移植性和一致性是Docker很好地满足的关键需求。从容器镜像构建的容器可以将应用程序与所有必需的库、依赖项和资源捆绑在一起,以便于部署。通过使用命名空间和控制组等Linux内核特性在主机操作系统之上创建容器,应用程序部署可以从开发到生产的整个过程实现自动化和流线化。
在0.9版本中,Docker用自己用Go编写的libcontainer库替换了LXC,从而为不同的供应商提供更广泛的原生支持。现在在19.x版本上,Docker现在提供对Window的原生支持,从而简化了Windows开发机器上Docker主机和容器的管理。同时,DockerEnterprise业务被Kubernetes即服务提供商Mirantis收购。
对于开发人员和运营商而言,Docker提供了以下高级优势,其中包括:
Docker与VMware并排
尽管VMware和Docker都可以归类为虚拟化技术,但每种技术的最佳用例可能完全不同。例如,VMware模拟虚拟硬件并且必须考虑所有底层系统要求——因此,虚拟机映像比容器大得多。也就是说,还可以使用VMware在单个主机上并行运行许多独立的操作系统实例,从而允许组织在内部构建真正的IaaS解决方案。
因为Docker容器是由Docker引擎(与虚拟机管理程序相反)执行的,所以它们不是完全隔离的。代价是占用空间很小:与VMware不同,Docker不会创建一个完整的虚拟操作系统,而是将所有尚未在主机上运行的必需组件与应用程序一起打包在容器中。由于主机内核在Docker容器之间共享,因此应用程序只附带运行所需的内容——不多也不少。这使得Docker应用程序比虚拟机更易于部署、更轻量级且启动速度更快。
Docker容器通常比虚拟机更快且资源密集度更低,但完整的VMware虚拟化仍然具有其独特的核心优势——即安全性和隔离性。由于虚拟机支持真正的硬件级隔离,因此与Docker容器相比,干扰和/或利用的可能性更小。因此,对于应用程序/软件的可移植性,Docker是您最安全的选择。为了机器可移植性和更大的隔离性,请使用VMware。无论您选择哪种虚拟化技术,UpGuard都可以自动验证您的虚拟机、Docker容器、Web应用程序等的完整性和安全性。
Docker与VMware常见问题
主要区别是什么?

Docker只是炒作还是对VMware的改进?
Docker的用例是由应用程序的架构和部署方式的进步驱动的。Web规模的企业不再依赖单体应用程序,而是发现了微服务架构的优势,包括可扩展性和高可用性。Docker容器为微服务提供了敏捷性和可靠性。围绕容器构建的生态系统,包括Kubernetes和ApacheMesos等工具,为IT组织带来了实实在在的好处。Docker的工具,包括其CLI、DockerCompose和DockerSwarm,为云原生应用程序部署提供了出色的支持。
Docker比VMware快吗?
配置和启动Docker容器必然比启动VMware容器更快。毕竟,Docker容器是一种更轻量级的资源。与虚拟机的RAM和其他要求相比,容器的开销很小。这并不意味着当您运行容器时,您的应用程序一定会比在VMware虚拟机上运行的应用程序更快。VMwareESXi、Xen和KVM等虚拟机平台的性能可与裸机相媲美。应用程序的特定环境将决定速度,包括机器规格、RAM和其他因素。
你可以在虚拟机中运行Docker吗?
由于VMware和Docker处理不同级别的虚拟化,它们不是严格竞争的技术,而是互补的技术。可以串联使用它们,许多组织都这样做。因此,您可以在运行在VMwareESXi虚拟机上的操作系统(例如Ubuntu或VMware的Photon)中运行Docker。
将Docker和VMware结合在一起
在VMware虚拟机上运行Docker不仅是可能的,而且许多IT团队依靠这种设置来部署他们的应用程序。虽然桌面产品VMwareWorkstation可供开发人员在开发期间使用,但它并不是适用于生产的设置。相反,您将希望使用VMwarevSphere和ESXi等VMware产品,它们为您配备了用于生产工作负载的高性能虚拟机。VMware的ESXi是一种裸机类型1虚拟机管理程序,专为安全性和效率而设计。它直接安装到您的服务器上,并直接控制物理服务器的资源。ESXi占用空间小,只有150MB,支持配置高达6TBRAM、128个CPU和120个设备的虚拟机。
对于在VMware虚拟机之上用于运行容器的实际操作系统,您有许多选项。一种强大的方法是使用VMware的Photon,这是一种以容器为中心的轻量级操作系统,并且针对此目的进行了性能优化。另一种选择是运行您可能已经在使用的流行发行版,例如Ubuntu、CentOS或Debian,它们都可以与VMware产品无缝协作。除了这些设置之外,容器化应用程序还可以直接与在VMware虚拟机或其他类型的虚拟机上运行的服务进行通信。这意味着您可以在数据中心中组合Docker主机和VMware虚拟服务器。您的Docker应用程序也可以部署在云中的虚拟机上,例如AWS、Azure或GoogleCloud。
在VMware虚拟机上运行Docker时遇到的一些常见问题包括:
在同时使用Docker和VMware时,您应该注意这些问题,并采取措施缓解这些问题。
虚拟化的未来:Docker会取代VMware吗?
虚拟化的未来可能包括更多地使用容器,而Docker可能会从中受益。Docker的上升趋势背后有强大的原因,以及相关技术的使用。一方面,容器使组织能够更加敏捷,因为它们部署得如此之快。开发人员可以更轻松、更快速地启动容器来测试他们的代码,同时部署也更快。
使用Docker,您可以在裸机、虚拟机、AWS、Azure或其他生产环境上进行部署。容器不仅在编排中引入了更高的效率,而且很大一部分容器技术也是开源的。这在整个社区范围内促进了更大的创新,从而为所有人提供了更好的解决方案,同时降低了成本。无服务器托管等其他趋势也促进了轻量级应用程序部署的一般论点,容器在很大程度上促进了这一点。未来,越来越多的组织可能会遵循“担心您的应用程序,而不是环境”的口号。
这些趋势都表明,Docker和Kubernetes等技术将在未来发挥更大的作用。也就是说,虚拟机可能会继续流行,至少在某些用例中是这样。与虚拟机相比,容器实现的隔离更少,因此往往被视为不太安全。对于需要更高安全性的用例,虚拟机可能仍然是一种卓越的技术。此外,容器的持久存储更难。这些是容器难以解决的问题,但将来可能会大大改善。如果是这样,对虚拟机的需求可能会进一步减少,但这还有待观察。
就VMware而言,它可以从将现有应用程序迁移到云的企业迁移到云中受益。在这种情况下,其中许多组织尚未准备好全面采用容器,但可以从VMwareCloud或VMwareHybridCloudPlatform等VMware的云产品中受益。
如何在Docker和VMware之间进行选择
正如我们所见,Docker和VMware的互补性意味着,与其问“我们应该使用Docker还是VMware”,不如说许多这样的组织应该问“我们如何一起使用这两者”。如果您的情况需要其中一项而不是两项,这些指南可以帮助您做出选择。如果您要将单体应用程序从本地托管迁移并将应用程序移植到容器将需要不可接受的开发投资,那么VMware虚拟机显然是合适的选择。此外,如果您希望您的应用程序拥有自己的用户空间和持久存储并在操作系统级别进行隔离,那么使用IntelVT或AMD-V等技术的VMware也更适合您的需求。
另一方面,对于专注于应用程序、特定操作系统及其功能与您的应用程序无关的情况,Docker容器是理想的选择。如果你正在实现一个分布式架构,每个应用程序都作为微服务运行,那么Docker是部署这类应用程序的理想选择。每个应用程序都在自己的容器中运行,Kubernetes等平台可帮助您管理容器集群,这些容器集群可能托管在云中的众多服务器上。无论您最终使用哪种工具,Docker和VMware都可以提高服务器利用率和效率,并降低总体部署成本。
本文来源:国外服务器--Docker与VMware是如何叠加的(dockervmware区别)
本文地址:https://www.idcbaba.com/guowai/3417.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。



