Какой смысл использовать Docker поверх виртуальной машины?

Новое для Docker... Docker описывается как альтернатива виртуальным машинам. Я читал немного сейчас, и это имеет смысл. Я не совсем понимаю, почему вы используете Docker поверх виртуальной машины, например. это именно то, что AWS теперь предлагает с beanstalk.

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

Ответ 1

Используемый нами пример использования - это то, что вы можете использовать один и тот же образ докеры поверх реального окна, виртуальной машины, разных операционных систем и т.д. и иметь одну и ту же контролируемую среду.

Даже если вы планируете запускать это только на одном типе машин (например, на виртуальных машинах EC2), вы, вероятно, разработаете его на своих ноутбуках или настольных компьютерах, поэтому имеет смысл использовать его.

И хорошая часть заключается в том, что накладные расходы Docker очень малы (или, по крайней мере, эта идея), поэтому это не повлияет на производительность даже при работе на виртуальном оборудовании. Это контрастирует с "настоящими" виртуальными машинами (каламбур не предназначен, но он звучит хорошо:)), что принесло бы большие накладные расходы в аналогичном сценарии.

Ответ 2

Все в Google работает в контейнере Linux, согласно VP инфраструктуры Эрик Брюэр.

Но все в Google не запускается в виртуальной машине.

Да, KVM используется, когда требуется другая ОС, а общедоступная служба Compute Platform (на данный момент) запускает Docker внутри виртуальных машин, возможно, для более сильной изоляции и управления. В противном случае большинство контейнеров Google работают на голом металле. Зачем добавлять дополнительные накладные расходы?

Если вы знаете по-другому, пожалуйста, поправьте меня.

В сегодняшнем предприятии отношение виртуальных машин к контейнерам может составлять от 99 до 1. Как долго до 30/70 или 20/80?

В то время как Kubernetes и другие инструменты оркестровки контейнеров никогда не смогут достичь пользы и простоты использования vSphere, я бы не хотел быть поставщиком виртуализации прямо сейчас.

Ответ 3

Любой человек, впервые встретивший мир контейнеров, задается вопросом Какой смысл использовать Docker поверх виртуальной машины?.. Я не исключительный.

В то время как это может быть простым ответом, поскольку каждый указывает, что контейнеры просто запускаются внутри виртуальной машины, как это происходит на большинстве облачных провайдеров, чтобы обеспечить изоляцию приложений. Но хорошо известно, что переезд в контейнеры не просто обеспечивает безопасность, которую делает VM. Вот почему контейнер запускается поверх Виртуальной машины, чтобы воспользоваться установленной и проверенной безопасностью, предоставляемой гипервизорами.

И да, улучшенная безопасность и изоляция контейнеров в Linux доведена до такой степени, что можно использовать сервисы голых металлических контейнеров без использования виртуальных машин для изоляции. Хорошим примером для такого случая является облачная служба IBM Bluemix. Bluemix построил управляемый контейнерный сервис для публичной облачной службы Bluemix, которая работает без изоляции VM между приложениями.

Компании, такие как VMWare, Intel, Hyper.. работают над созданием быстродействующих инфраструктур на основе VM, которые реализуют API Docker в попытке получить скорость рабочего процесса на основе контейнеров и защиту гипервизора.

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