Применение docker

Введение

Используется для развертывания дистрибутива.

Терминология

  • Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации. Позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, который может быть перенесён на любую Linux-систему с поддержкой cgroups в ядре, а также предоставляет среду по управлению контейнерами.

  • Docker Daemon (демон Докера) - Фоновый сервис, запущенный на хост-машине, который отвечает за создание, запуск и уничтожение Докер-контейнеров.

  • Docker Client (клиент Докера) - Утилита командной строки, которая позволяет пользователю взаимодействовать с демоном.

  • Docker Hub - Регистр Докер-образов. Архив всех доступных образов. Если нужно, то можно содержать собственный регистр и использовать его для получения образов.

  • Image (container image, образ) – упорядоченный набор корневых изменений файловой системы и соответствующих параметров выполнения для использования в среде выполнения контейнера. Образ обычно содержит объединение многоуровневых файловых систем, расположенных друг на друге. Образ не имеет состояния. Образ нельзя изменить после создания.

  • Container (контейнер) – экземпляр среды выполнения образа (Image). Контейнер состоит из: образа (Image); среды выполнения; стандартного набора инструкций.

  • Dockerfile – текстовый документ, который содержит все команды, которые обычно выполняются вручную для построения образов docker. Docker может автоматически создавать образы, прочитав инструкции из данного файла.

  • Volume (том) - это специально назначенный каталог в одном или нескольких контейнерах, который обходит Union File System. Тома предназначены для сохранения данных, независимо от жизненного цикла контейнера. Поэтому Docker никогда автоматически не удаляет тома при удалении контейнера, и он не «собирает мусор» тома, на которые контейнер больше не ссылается. Также известен как: объем данных. Существует три типа томов: host (хостовый том), anonymous (анонимный том) и named (именованный том):

    • Хостовый том находится в файловой системе хост-машины (где установлен Docker) и доступен из контейнера.

    • Именованный том - том с назначенным именем

    • Анонимный том - том которому не назначается имя

Основные тезисы

  • Docker как форма поставки дистрибутива

  • Обновление системы сохраняется в виде *.zip файла

  • Обновление в виде docker image требует отдельного изучения

  • В качестве базового образа используется ubuntu:16.04

  • Docker запускается в демон режиме

Описание

docker employment overview

, где

  • Host - хост-машина, сервер (физический или виртуальный) с ОС на которую можно установить Docker CE.

  • Docker (application) - приложение docker

  • era-er (docker container) - контейнер созданный из поставляемого образа era.

  • era_vol - именованный том, указывающий на каталог /usr/lib/era внутри контейнера. Хранит данные созданные в процессе работы контейнера, необходим для продолжения работы после перезагрузки контейнера.

  • supv_vol - анонимный том, объявленный при создании образа era и указывающий на /etc/supervisor/conf.d. Хранит конфигурации приложения supervisor внутри контейнера, необходим для продолжения работы после перезагрузки контейнера.

Описание образа era в виде тезисов:

  • Докер контейнер содержит настроенную среду для запуска системы (r).

  • Перед запуском контейнера создаются тома, они позволяют перезапускать контейнер без потери накопленной информации. Так же можно удалять контейнер и запускать новый из образа используя существующие тома (может быть использовано для обновления)

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

  • При запуске контейнера выполняется команда запуска supervisor без демонизации, т.о. если supervisor завершится, остановится контейнер.

  • После первого запуска контейнера необходимо подключиться к нему и произвести конфигурирование системы (r)

  • В описании докер образа присутствует информация о версии системы и коммите с которого была произведена сборка