Docker与虚拟机–了解它们的差异

本文概述

  • 什么是虚拟机?
  • 什么是Docker?
  • Docker与VM
关于Docker的常见问题之一是它与VM(虚拟机)的区别。
在云基础架构方面, 虚拟机已成为其众多优势的首选标准。但是, 如果你有更轻巧, 经济和可扩展的虚拟机替代方案, 该怎么办。这就是Docker。
Docker是一种基于容器的技术, 可让你开发分布式应用程序。在这篇博客文章中, 我将解释虚拟机和Docker容器之间的区别。
什么是虚拟机? 【Docker与虚拟机–了解它们的差异】虚拟机是一个完全类似于计算机的系统。
简而言之, 它使得可以在硬件上的许多不同计算机(即一台计算机)上运行内容。每个虚拟机都需要其底层操作系统, 然后对硬件进行虚拟化。
什么是Docker? Docker是一种使用容器的工具, 可简化应用程序的创建, 部署和运行。它将应用程序及其依赖项绑定在容器内。
学习Docker很容易!
Docker与VM 现在, 我将告诉你Docker容器与虚拟机之间的显着差异。好吧, 它们的操作系统支持, 安全性, 可移植性和性能是显着的区别。
因此, 让我们逐一讨论这些术语中的每一个。
操作系统支持
Docker与虚拟机–了解它们的差异

文章图片
虚拟机和Docker容器对操作系统的支持有很大不同。从上面的图像中, 你可以看到每个虚拟机在主机操作系统之上都有其来宾操作系统, 这使虚拟机变得沉重。另一方面, Docker容器共享主机操作系统, 这就是为什么它们是轻量级的。
在容器之间共享主机操作系统使它们非常轻巧, 并帮助它们在几秒钟内启动。因此, 与虚拟机相比, 管理容器系统的开销非常低。
docker容器适用于要在单个操作系统内核上运行多个应用程序的情况。但是, 如果你有需要在不同操作系统风格上运行的应用程序或服务器, 则需要虚拟机。
安全
虚拟机不共享操作系统, 并且主机内核中存在强隔离。因此, 与容器相比, 它们更加安全。容器具有很多安全风险, 并且由于容器具有共享的主机内核, 因此存在漏洞。
另外, 由于Docker资源是共享的, 并且没有命名空间, 因此, 攻击者即使可以访问一个容器, 也可以利用群集中的所有容器。在虚拟机中, 你无法直接访问资源, 因此虚拟机管理程序可以限制虚拟机中资源的使用。
可移植性
Docker容器没有单独的操作系统, 因此很容易移植。容器可以移植到其他操作系统, 并且可以立即启动。另一方面, 虚拟机具有单独的OS, 因此与容器相比, 移植虚拟机很困难, 并且由于虚拟机的大小, 移植虚拟机也要花费很多时间。
对于必须在不同平台上开发和测试应用程序的开发目的, Docker容器是理想的选择。
性能
比较虚拟机和Docker容器将是不公平的, 因为它们都用于不同的目的。但是docker的轻量级体系结构具有较少的资源占用功能, 因此比虚拟机更好。结果, 与虚拟机相比, 哪些容器可以启动得非常快, 并且资源使用情况取决于其中的负载或流量。
与虚拟机的情况不同, 无需将资源永久分配给容器。与虚拟机相比, 扩展和复制容器也是一件容易的事, 因为不需要在其中安装操作系统。
总结
下表总结了虚拟机与Docker容器的区别。
虚拟机 Docker容器
硬件级流程隔离 操作系统级进程隔离
每个虚拟机都有一个单独的操作系统 每个容器可以共享操作系统
在几分钟内启动 在几秒钟内启动
虚拟机只有几GB 容器是轻量级的(KB / MB)
现成的VM很难找到 预制的Docker容器很容易获得
虚拟机可以轻松移动到新主机 容器被破坏并重新创建而不是移动
创建虚拟机需要相对较长的时间 可以在几秒钟内创建容器
更多资源使用 减少资源使用

    推荐阅读