Рабочие контейнеры в виртуальной машине?

Это - мое понимание, что контейнеры намного более легки, чем VMs, потому что они не виртуализируют аппаратные средства, но вместо этого просто изолируют программное обеспечение, работающее в них из программного обеспечения, работающего в других контейнерах в системе.

Моя ситуация такова, что я не могу позволить себе купить дополнительные серверы, и серверы, которые я действительно имею, все выполняют гипервизоры. Я должен настроить по крайней мере 6 "серверов" для хостинга экземпляров относительно маленького веб-приложения (каждый экземпляр для различного клиента). Было бы расточительно настроить новый VM для каждого из этих серверов, таким образом, я планирую настроить 2 VMs и выполнить одно из следующих действий:

  1. Выполните несколько экземпляров приложения на каждом VM использование виртуальных хостов (апач). или
  2. Настройте контейнеры на VMs, который позволил бы мне изолировать среды.

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

15
задан 16 July 2015 в 01:33
2 ответа

Докер ОЧЕНЬ легковесен по сравнению с ВМ и система ВМ должна функционировать только в хорошо работающих контейнерах. Каждый контейнер, по сути, работает как изолированная система, поэтому он очень хорош для изоляции с точки зрения стабильности системы. Основываясь на вашем описании, это звучит как идеальный вариант использования Docker. Если вы экспериментируете с Docker'ом, убедитесь, что используете самую новую версию, в некоторых старых версиях есть довольно неприятные уязвимости. Есть некоторые соображения безопасности при работе с Docker.

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

USER Directive - В каждом профиле Docker'а рекомендуется использовать директиву USER и запускать пользователя в качестве учетной записи, отличной от root, по умолчанию. Суть в том, что пользователь должен существовать в системе. Это также может расстроить chowning/chmodding файлы и каталоги для этого нового пользователя, но это поможет снизить ваш риск. Обычно я рекомендую создавать "контейнерного пользователя" или что-то в этом роде на ваших системах, чтобы гарантировать, что общий пользователь доступен на всех системах, которые не пересекаются с любой другой частью системы.

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

.
13
ответ дан 2 December 2019 в 20:52

есть ли существенные накладные расходы, связанные с системами контейнеров, из-за которых использование их внутри виртуальной машины было бы плохой идеей.

Имеет ли производительность контейнеров Docker в VMware vSphere помочь вам?

или есть какая-то другая техническая причина, по которой я не хотел бы использовать контейнеры?

Я не знаю вообще о Docker, потому что я еще не работал с ним. Я думаю, что программному обеспечению для управления по-прежнему не хватает зрелости по сравнению с программным обеспечением для управления виртуальными машинами ... но я администратор vSphere и поэтому, вероятно, предвзято.

Учитывая Docker на виртуальных машинах, CoreOS теперь официально поддерживается на vSphere 5.5 . По крайней мере, VMware считает, что Docker / контейнеры на виртуальных машинах в порядке.

3
ответ дан 2 December 2019 в 20:52

Теги

Похожие вопросы