Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: Windows Server 2025, Windows Server 2022, Windows Server 2019, Windows Server 2016
В этом разделе рассматриваются некоторые ключевые сходства и различия между контейнерами и виртуальными машинами (VM), а также случаи, когда лучше использовать те или другие. Контейнеры и виртуальные машины – у каждого из них есть свои применения. На самом деле, многие развертывания контейнеров используют виртуальные машины в качестве хостовой операционной системы, а не работают непосредственно на оборудовании, особенно при запуске контейнеров в облаке.
Введение в контейнеры вы найдете в разделе Windows и контейнеры.
Архитектура контейнера
Контейнер — это изолированная, легковесная среда для запуска приложения в операционной системе хоста. Контейнеры строятся на основе ядра операционной системы хоста (которое можно считать внутренними механизмами операционной системы) и содержат только приложения, а также некоторые облегченные API и службы операционной системы, работающие в пользовательском режиме, как это показано на данной схеме.
Архитектура виртуальной машины
В отличие от контейнеров, виртуальные машины выполняют полную операционную систему, включая собственное ядро, как показано на этой схеме.
.
Контейнеры и виртуальные машины
В следующей таблице показаны некоторые сходства и различия этих дополнительных технологий.
Особенность | Виртуальная машина | Контейнер |
---|---|---|
Изоляция | Обеспечивает полную изоляцию от операционной системы узла и других виртуальных машин. Это полезно, когда критически важна строгая граница безопасности, например, при размещении приложений от конкурирующих компаний на одном сервере или кластере. | Обычно обеспечивает упрощенную изоляцию от узла и других контейнеров, но не обеспечивает так сильную границу безопасности, как виртуальная машина. (Вы можете повысить безопасность с помощью режима изоляции Hyper-V для изоляции каждого контейнера в упрощенной виртуальной машине. |
Операционная система | Запускает полную операционную систему, включая ядро, поэтому требуется больше системных ресурсов (ЦП, памяти и хранилища). | Запускает часть операционной системы в пользовательском режиме и может быть адаптирована для хранения только необходимых служб для приложения, используя меньше системных ресурсов. |
Совместимость гостей | Выполняется практически в любой операционной системе на виртуальной машине. | Выполняется в той же версии операционной системы , что и узла (изоляцияHyper-V позволяет запускать более ранние версии той же ОС в упрощенной среде виртуальной машины). |
Развёртывание | Развертывание отдельных виртуальных машин с помощью Windows Admin Center или диспетчера Hyper-V; разверните несколько виртуальных машин с помощью PowerShell или System Center Virtual Machine Manager. | Разверните отдельные контейнеры с помощью командной строки Docker; разверните несколько контейнеров с помощью оркестратора, такого как Azure Kubernetes Service. |
Обновления и улучшения операционной системы | Скачайте и установите обновления операционной системы на каждой виртуальной машине. Для установки новой версии операционной системы требуется обновление или часто просто создание совершенно новой виртуальной машины. Это может занять много времени, особенно если у вас много виртуальных машин. | Обновление или апгрейдирование файлов операционной системы в контейнере происходит одинаково:
|
Постоянное хранилище | Используйте виртуальный жесткий диск (VHD) для локального хранилища для одной виртуальной машины или общей папки SMB для общего хранилища несколькими серверами. | Используйте диски Azure для локального хранилища для одного узла или файлов Azure (общих папок SMB) для хранения, совместно используемого несколькими узлами или серверами. |
Балансировка нагрузки | Балансировка нагрузки виртуальных машин перемещает виртуальные машины на другие серверы в отказоустойчивом кластере. | Контейнеры сами не перемещаются; Вместо этого оркестратор может автоматически запускать или останавливать контейнеры на узлах кластера для управления изменениями нагрузки и доступности. |
Отказоустойчивость | Виртуальные машины могут переключаться на другой сервер в кластере, и их операционная система перезапустится на новом сервере. | Если узел кластера выходит из строя, любые контейнеры, работающие на нем, быстро создаются оркестратором на другом узле кластера. |
Сети | Использует адаптеры виртуальной сети. | Использует изолированное представление виртуального сетевого адаптера, обеспечивая немного меньшую степень виртуализации. Брандмауэр узла используется совместно с контейнерами, что позволяет экономить ресурсы. Дополнительные сведения см. в разделе сети контейнеров Windows. |