Запуск контейнерів всередині віртуальної машини?


15

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

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

  1. Запустіть кілька екземплярів програми на кожній машині віртуального використання за допомогою віртуальних хостів (apache). або
  2. Встановіть контейнери на віртуальних машинах, які б дозволили мені ізолювати середовища.

Враховуючи це, чи є незначна накладні витрати, пов’язані з контейнерними системами, що зробило б поганою ідеєю використовувати їх всередині VM, чи є якась інша технічна причина, чому я не хотів би використовувати контейнери?

Відповіді:


13

Docker є ДУЖЕ легким порівняно з VM, а система VM повинна функціонувати просто на вигідних контейнерах. Кожен контейнер по суті працює як ізольована система, тому це дуже добре для ізоляції з точки зору стабільності системи. На основі вашого опису це здається ідеальним випадком використання для Docker. Якщо ви експериментуєте з Docker, переконайтеся, що ви використовуєте найновішу можливу версію, деякі старіші мають в них досить неприємні вразливості. Є певні міркування щодо безпеки під час роботи Docker.

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

Директива USER - у кожному Dockerfile рекомендується використовувати найкращу практику щодо використання директиви USER, а користувач запускає як обліковий запис, відмінний від root, за замовчуванням. Уловлювач у тому, що користувач повинен існувати в системі. Для цього нового користувача це може також засмучувати файли та каталоги з придушенням / чмодінгом, але це допомагає зменшити ризик. Зазвичай я рекомендую створити у своїх системах "контейнерокористувач" або щось подібне, щоб забезпечити доступність загального користувача у всіх системах, які не перетинаються з будь-якою іншою частиною системи.

В іншому випадку найскладніша частина - це керування контейнерами та оновлення їх при необхідності.


3

чи є несуттєва накладні витрати, пов’язані з контейнерними системами, що зробило б поганою ідеєю використовувати їх всередині VM

Чи допомагає вам ефективність Docker Containers у VMware vSphere ?

чи є якась інша технічна причина, чому я не хотів би використовувати контейнери?

Я взагалі не знаю про Докера, тому що я ще не працював з ним. Я думаю, що в програмному забезпеченні для управління все ще бракує зрілості порівняно з програмним забезпеченням для управління VM ... але я адміністратор vSphere і тому, ймовірно, упереджений.

Враховуючи Docker для VM, CoreOS тепер офіційно підтримується на vSphere 5.5 . Так що принаймні VMware вважає, що Docker / контейнери на машинах VM - це нормально.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.