Выпуск Docker 1.2. Открыт код Flocker, системы управления кластерами изолированных контейнеров
23 августа 2014 года
Увидел свет релиз инструментария для управления изолированными Linux-контейнерами Docker 1.2, предоставляющего высокоуровневый API для манипуляции контейнерами на уровне изоляции отдельных приложений. В частности, Docker позволяет не заботясь о формировании начинки контейнера запускать произвольные процессы в режиме изоляции и затем переносить и клонировать сформированные для данных процессов контейнеры на другие серверы, беря на себя всю работу по созданию, обслуживанию и сопровождению контейнеров. Код Docker написан на языке Go и распространяется под лицензией Apache 2.0.
Инструментарий базируется на применении встроенных в ядро Linux штатных механизмов изоляции на основе пространств имён (namespaces) и групп управления (cgroups). Для создания контейнеров предлагается использовать libcontainer (обёртка над namespaces и cgroups), также возможно применение lxc, libvirt, systemd-nspawn и других систем изоляции. Для формирования контейнера достаточно загрузить базовый образ окружения (docker pull base), после чего можно запускать в изолированных окружениях произвольные приложения (например, для запуска bash можно выполнить "docker run -i -t base /bin/bash").
Из особенностей выпуска Docker 1.2 можно отметить:
- В команду "docker run" добавлен флаг "--restart", дающий возможность определить политику перезапуска контейнера. Среди доступных опций: "no" (по умолчанию) - не перезапускать контейнер после завершения его работы, "on-failure" - перезапускать только после нештатного завершения (выход с кодом ошибки, отличным от 0), "always" - всегда перезапускать контейнер, независимо от кода возврата;
- Добавлены опции --cap-add и --cap-drop для добавления или изъятия предоставленных контейнеру capabilities (например, --cap-add=NET_ADMIN, --cap-drop=CAP_CHOWN, --cap-add=ALL, --cap-drop=MKNOD);
- В команду "docker run" добавлена опция --device для указания устройств, пробрасываемых в контейнер (например, "docker run --device=/dev/snd:/dev/snd");
- Поддержка изменения содержимого файлов /etc/hosts, /etc/hostname и /etc/resolv.conf, размещаемых внутри контейнера. Изменённые файлы сохраняются только в текущем образе, но не копируются при создании новой сборки с использованием "docker build";
- Реализация прокси, перенаправляющего трафик в контейнеры, теперь работает в виде отдельного процесса для каждого соединения.
Дополнительно можно отметить первый выпуск Flocker, системы управления кластером изолированных контейнеров и разделами с данными, размещаемыми внутри контейнеров. Код проекта распространяется под лицензией Apache. Flocker позволяет упростить управление накапливаемыми в процессе работы контейнера данными, в условиях применения кластерной инфраструктуры, включающей несколько серверов. В частности, Flocker может использоваться для автоматизации переноса данных вместе с Docker-контейнерами, в которых выполняются такие приложения, как СУБД и хранилища в форматах ключ/значение.
Например, при помощи Flocker можно развернуть приложение в контейнерах на нескольких хостах, после чего программа получит доступ к хранилищу (пока поддерживается только ZFS), которое будет привязано к этой программе и будет следовать за контейнером при его миграции от одного хоста к другому (актуальный срез ZFS-раздела будет реплицирован на другой хост).
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.