云应用程序应该选择Docker容器还是虚拟机?

日期: 2024-07-12 作者:Stuart Burns翻译:邹铮 来源:TechTarget中国 英文

容器对于虚拟机,就像虚拟机对于物理服务器,在规模、速度和灵活性方面,它们都是规则改变者。企业应该在概念层面上熟悉容器,这会在很多方面带来好处。

虽然虚拟机仍然存在用例,但容器和容器平台(例如Docker)将成为我们构建和部署应用程序的主要方式。这是由于它们的可扩展性、易用性和便携性。

对比虚拟机,容器的好处

与虚拟机相比,容器的优势包括以下内容:

  • 速度。从容器映像部署容器需要几秒钟。容器作为进程在主机上运行,很多容器可以在单个主机上运行。例如,部署Nginx实例对映像的占用不到200 MB,内存使用量以兆字节而不是千兆字节为单位。
  • 可扩展性。容器可以提供动态扩展的构建块,同时增加灵活性。当设置在负载均衡器后面时,添加容器来应对峰值很简单。部署可以变得自动化,并快速扩展和扩展。这就是Kubernetes所提供的:容器自动化、可用性和编排。
  • 降低成本。扩展有助于降低成本,因为容器在关闭和自动化之前可能只是暂时存在。与此同时,一组主机可以管理几个基于容器的应用程序堆栈,应用程序与虚拟机的比率不再为1-1,这些虚拟机都需要修复,即使不使用。
  • 可移动性。开发人员可以根据所需的规格构建映像,并将该容器映像作为生产就绪提供。如果你确保容器映像包含运行所需的一切,则它可在另一个工作站或服务器上正常运行。Docker最适合这个,因为它可在所有流行的平台上运行。
  • 轻量级。容器映像比虚拟机小,因为它们不需要包含所有操作系统相关的文件,这些文件会占用千兆字节空间。它可以简单地拉下映像并在启用Docker的主机上运行。

使用Docker提高云应用程序效率

过渡到Docker是动态配置应用程序的旅程,与虚拟机的重量级方法相比,这些应用程序更以应用程序为中心。它使应用程序与硬件分离。

Docker容器平台利用容器的好处,同时提高其效率。例如,部署新版本的Docker应用程序只需要一个命令。无需开始通过脚本、部署工具或手动更新环境。

加快部署和升级

如果你使用虚拟机,你需要手动升级或重新部署它。并且,升级可能会失败,虚拟机需要从备份中重建或恢复,这需要花费时间和资源。而如果容器无法正确部署,你可以将其删除,然后启动新的容器映像即可。在这种情况下,更换时间是几秒钟,而不是几个小时的故障排除或恢复。尝试对容器进行故障排除是没有意义的;只需在几秒钟内即可重新启动新的容器。

简化控制

在独立主机环境中,一个未被充分利用的功能是docker compose参数。这可使整个应用程序堆栈(例如数据库和应用程序服务器)能够在YAML文件中存储和管理应用程序的所有信息。Docker compose还允许用户使用一个命令停止和启动整个堆栈,或为容器的自动启动提供选项。如果要启动堆栈,请使用docker compose up。如果要停止堆栈,请使用docker compose down

使用docker compose pull启动对YAML配置文件的读取,确保该堆栈使用最新的可用映像。相比之下,部署新虚拟机或升级映像是一件很耗时的事情。Docker消除了这些基础设施需求,降低了运营成本。

减少存储空间

如果新部署的映像存在问题怎么办?启动之前发布的容器,就像停止故障容器并使用上一个容器实例重新启动一样简单。这些映像非常轻量级,管理员可以在不使用太多磁盘空间的情况下存储多个副本。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

翻译

邹铮
邹铮

相关推荐