Контейнеризация связана с несколькими ключевыми терминами:
       Таблица 3 – Терминология

Термин

Определение

Контейнер

Приложение, упакованное с зависимостями

Контейнер двигатель

Механизм выполнения, который управляет контейнерами

Докер

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

Контейнер хозяин

Виртуальная машина или физическая машина, на которой работают контейнеры и механизм контейнеров.

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

       Среди причин популяризации контейнеров разработчиками программного обеспечения можно назвать:

  • Они упрощают кодирование локально и в любом месте.
  • Вы можете быстро развертывать и тестировать приложения в промежуточной среде.
  • Снижают нагрузку на работу системы в целом.


Рисунок 6 – Структура контейнера

       Хост контейнера запускает операционную систему, в которой работают контейнеры.
       Хосты-контейнеры могут быть следующих типов:

  • Стандартная ОС с установленным контейнерным движком:
  • Ubuntu с Докер
  • ОС, разработанная специально для контейнеров:
  • Фотон ОС
  • Федора CoreOS
  • Виртуальная машина или физическая машина:
  • Среди множества преимуществ использования виртуальных машин – простота управления и масштабируемость.


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

  • Контейнер может работать на любом хосте контейнера с тем же ядром операционной системы, которое указано для этого контейнера.
  • Доступ к работающему контейнеру осуществляется с использованием его полного доменного имени или уникального IP-адреса.
  • Каждый контейнер может получить доступ только к своим собственным ресурсам в общей среде. Когда вы входите в контейнер с помощью удаленного терминала (например, SSH), вы не видите признаков того, что другие контейнеры работают на том же узле контейнера.

       Механизм контейнера – это плоскость управления, которая устанавливается на каждом узле контейнера. Плоскость управления управляет контейнерами на этом узле.
Контейнерные двигатели выполняют несколько функций:

  • Создают образы контейнеров из исходного кода (например, Dockerfile). В качестве альтернативы загружают контейнер из репозитория
  • Создают работающие контейнеры на основе образа контейнера.
  • Фиксируют работающий контейнер в образе.
  • Сохраняют изображение и отправляют его в репозиторий.
  • Останавливают и удаляют контейнеры.
  • Приостанавливают и перезапускают контейнеры.
  • Отображают статус работы контейнеров.


       Docker — наиболее часто используемая контейнерная платформа. Механизм контейнера работает как демон-процесс в операционной системе хоста контейнера. Когда пользователь запрашивает запуск контейнера, механизм контейнера получает образ контейнера из реестра образов (или локально, если он уже загружен) и запускает контейнер как процесс.

  • Нет меток