Правильно ли мое понимание виртуальных машин и контейнеров Docker? - PullRequest
0 голосов
/ 28 февраля 2019

Какие проблемы они пытаются решить:

Запуск программы в среде, для которой она не предназначена, без необходимости ее модификации.Особенно запуск двух программ одновременно в среде, в которой это обычно невозможно сделать. Примеры:

  • под управлением двух ОС, то есть Windows 10 и Ubuntu 18.10 на одной машине одновременно
  • запуск двух программ, которым требуется разная версия среды выполнения (т. Е. Узел 6 и узел 10) одновременно

Общая идея для достижения этой цели:

Изоляция

Части программного обеспечения не знают друг о друге и базовой системе, которая используется для его работы (если мы явно не разрешаем совместное использование определенных ресурсов)

Ссылка на поп-культуру:

Шоу Трумана.

Часть программного обеспечения, которая запускается внутри виртуальной машины или контейнера-докера, похожа на Трумэна: он не знает, что среда, в которой он живет, - это просто песочница, изолированная от реального мира и всего, чтопроисходящее внутри организовано и наблюдается сторонним представителем: организаторами шоу (гипервизор или демон докеров соответственно).Но иногда случается, что приложение испытывает какое-то странное / нереальное поведение (поскольку showrunners не идеальны).

Чем они отличаются:

Виртуальная машина - это абстракция аппаратного уровня (ВМ эмулирует реальноемашина), в то время как контейнер Docker является абстракцией уровня приложения (он «эмулирует» среду ОС, то есть контейнеры совместно используют ядро ​​хоста и имеют собственную файловую систему, пространство имен и сеть)

...