Вы используете устаревший браузер!

Страница может отображаться некорректно.

  • добавить в избранное
    Добавить в закладки

О преимуществах и недостатках контейнеров

Прочитали: 1820 Комментариев: 49 Рейтинг: 69

Мы не раз писали о технологии Docker, но поскольку это сложная для восприятия информация, не все понимают, для чего эта технология нужна. Давайте сегодня попробуем разобраться в сущности этой технологии с помощью образного сравнения.

Предположим, вам нужно перевезти по морю некий груз. Для перевозки вы можете купить судно – крейсер или линкор, и нанять собственную команду, которая будет им управлять. Его броня полностью изолирует ваш груз от вредоносных воздействий. А вооруженный знаниями надежный экипаж не допустит на борт ничего лишнего. Конечно, это дорогая услуга. И поскольку в порту может поместиться не так много кораблей, а грузов много, то на вход в порт выстраивается очередь или нужно его расширять.

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

В общем, виртуальная машина – это полная изоляция от иных виртуальных машин и самой операционной системы, на которых все они запущены, непробиваемость (количество вредоносного ПО, способного перемещаться между виртуальными машинами, достаточно мало), но большая ресурсоемкость – и по месту на диске, и по необходимости выделения оперативной памяти.

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

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

Виртуальная машина полностью (ну, почти) изолирует запускаемое приложение от той операционной системы, на которой она запущена. Она использует возможности этой ОС, чтобы запуститься, но запускает она не непосредственно нужное пользователю приложение, а еще одну операционную систему. И приложение запускается в уже этой операционной системе. Это дает огромные возможности, но и ресурсов требует немало – в этой ОС работает (и потребляет ресурсы) множество ненужных пользователю сервисов. Как же сделать так, чтобы нужное приложение для запуска изолировалось от основной ОС только с нужными для ее работы файлами/сервисами/данными – но ни с какими иными? Это и есть контейнер.

Еще одна аналогия контейнера. Положим, мы решили развозить грузы. Покупаем велосипед. Получаем заказ, клонируем велосипед, красим его в цвета заказчика и тюнингуем его под требования заказчика, добавляя обвес. Запускаем на выполнение заказ. Заказ выполнен – транспортное средство растворилось в воздухе. При этом условие: изнутри транспортного средства заказчик не имеет выхода наружу, для перемещения транспортное средство использует внешние ресурсы, разделяя их с другими транспортными средствами, и снаружи есть доступ ко всем файлам контейнера (но напомним, не наоборот – проходимость односторонняя!).

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

Некая группировка сканирует сеть Интернет на наличие серверов, на которых возможен запуск Docker. Обнаружив такой, злоумышленники создают контейнер на основе Alpine Linux и запускают в нем майнер криптовалюты Monero.

Источник

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

#Windows #Linux #антивирус #сервер #контейнер

Dr.Web рекомендует

Windows у вас или Линукс:

  • закройте все ненужные порты для доступа снаружи;
  • проверьте систему на неустановленные обновления;
  • не давайте возможности пользователям работать с повышенными правами;
  • используйте антивирус, он даст вам возможность проверить все контейнеры на наличие вредоносных программ. Нет необходимости устанавливать антивирус в сам контейнер. Как мы помним, снаружи контейнеры могут быть проверены на «запрещенный груз» – антивирус это сделает.

Получайте Dr.Web-ки за участие в проекте

Каждая активность = 1 Dr.Web-ка

Оцените выпуск

Сделайте репост

Поставьте «Нравится»

Чтобы получать награды надо войти на страницу выпуска через аккаунт на сайте «Доктор Веб» (или создать аккаунт). Аккаунт должен быть связан с вашим аккаунтом в социальной сети. Видео о связывании аккаунта.


Нам важно ваше мнение

10 Dr.Web-ок за комментарий в день выхода выпуска или 1 Dr.Web-ка в любой другой день. Комментарии публикуются автоматически и постмодерируются. Правила комментирования новостей «Доктор Веб».

Чтобы оставить комментарий, нужно зайти через свой аккаунт на сайте «Доктор Веб». Если аккаунта еще нет, его можно создать.

Комментарии пользователей