Контейнеризация связана с несколькими ключевыми терминами:
Таблица 3 – Терминология
Термин | Определение | |
---|---|---|
1 | Контейнер | Приложение, упакованное с зависимостями |
2 | Контейнер двигатель | Механизм выполнения, который управляет контейнерами |
3 | Докер | Самая известная платформа среды выполнения для поддержки контейнеров, который часто используется как синоним для многих аспектов контейнерных технологий |
4 | Контейнер хозяин | Виртуальная машина или физическая машина, на которой работают контейнеры и механизм контейнеров |
Контейнер — это инкапсуляция приложения и зависимых двоичных файлов, библиотек. Приложение отделяется от операционной системы и становится бессерверной функцией.
Среди причин популяризации контейнеров разработчиками программного обеспечения можно назвать:
- Они упрощают кодирование локально и в любом месте.
- Вы можете быстро развертывать и тестировать приложения в промежуточной среде.
- Снижают нагрузку на работу системы в целом.
Хост контейнера запускает операционную систему, в которой работают контейнеры.
Хосты-контейнеры могут быть следующих типов:
- Стандартная ОС с установленным контейнерным движком:
- Ubuntu с Докер
- ОС, разработанная специально для контейнеров:
- Фотон ОС
- Федора CoreOS
- Виртуальная машина или физическая машина:
- Среди множества преимуществ использования виртуальных машин – простота управления и масштабируемость.
Администраторы предоставляют хосты контейнеров, которые являются базовой структурой, которую разработчики используют для запуска своих контейнеров. Надежная система микросервисов включает в себя больше результатов, многие из которых создаются с использованием контейнеров. Чтобы разработчики могли сосредоточиться на предоставлении услуг клиентам, операции должны обеспечивать надежную хост-инфраструктуру контейнеров.
Контейнеры имеют следующие характеристики:
- Контейнер может работать на любом хосте контейнера с тем же ядром операционной системы, которое указано для этого контейнера.
- Доступ к работающему контейнеру осуществляется с использованием его полного доменного имени или уникального IP-адреса.
- Каждый контейнер может получить доступ только к своим собственным ресурсам в общей среде. Когда вы входите в контейнер с помощью удаленного терминала (например, SSH), вы не видите признаков того, что другие контейнеры работают на том же узле контейнера.
Механизм контейнера – это плоскость управления, которая устанавливается на каждом узле контейнера. Плоскость управления управляет контейнерами на этом узле.
Контейнерные двигатели выполняют несколько функций:
- Создают образы контейнеров из исходного кода (например, Dockerfile). В качестве альтернативы загружают контейнер из репозитория
- Создают работающие контейнеры на основе образа контейнера.
- Фиксируют работающий контейнер в образе.
- Сохраняют изображение и отправляют его в репозиторий.
- Останавливают и удаляют контейнеры.
- Приостанавливают и перезапускают контейнеры.
- Отображают статус работы контейнеров.
Docker — наиболее часто используемая контейнерная платформа. Механизм контейнера работает как демон-процесс в операционной системе хоста контейнера. Когда пользователь запрашивает запуск контейнера, механизм контейнера получает образ контейнера из реестра образов (или локально, если он уже загружен) и запускает контейнер как процесс.