Выпуск cистемы управления контейнерной виртуализацией Docker 1.13

После шести месяцев разработки подготовлен релиз инструментария для управления изолированными Linux-контейнерами Docker 1.13, предоставляющего высокоуровневый API для манипуляции контейнерами на уровне изоляции отдельных приложений. Docker позволяет, не заботясь о формировании начинки контейнера, запускать произвольные процессы в режиме изоляции и затем переносить и клонировать сформированные для данных процессов контейнеры на другие серверы, беря на себя всю работу по созданию, обслуживанию и сопровождению контейнеров. Инструментарий базируется на применении встроенных в ядро Linux штатных механизмов изоляции на основе пространств имён (namespaces) и групп управления (cgroups). Код Docker написан на языке Go и распространяется под лицензией Apache 2.0.

Основные изменения:

  • Расширены возможности режима Swarm, начиная с прошлой версии интегрированного в состав движка Docker и предоставляющего средства кластеризации для упакованных в контейнеры приложений. Swarm даёт возможность управлять кластером из нескольких хостов Docker по аналогии с работой с одним виртуальным хостом. В новой версии обеспечена поддержка использования compose-файлов (docker-compose.yml) для развёртывания сервисов в режиме Swarm (сложный мультисервисный стек теперь можно развернуть на нескольких хостах одной командой «docker stack deploy»). Из плюсов применения docker-compose.yml отмечается возможность указания желаемого числа экземпляров каждого сервиса, применение политики обновления и определения условий запуска сервисов.
  • Улучшена обратная совместимость на уровне взаимодействия управляющего демона с инструментарием командной строки (CLI). Если раньше использование новой версии клинта со старой версией демона приводило к проблемам (выводилась ошибка «Error response from daemon: client is newer than server»), то начиная с выпуска 1.13 новые версии CLI учитывают особенности прошлых выпусков демона и могут использоваться для управления ими, что значительно упрощает организацию управления инфраструктурой с одной системы. На случай если клиент пытается выполнить действие, которое ещё не реализовано в демоне в новом выпуске добавлены средства для согласования функциональности клиента и сервера;
  • Реализованы две новые команды «docker system df» и «docker system prune» для отображения сведений об используемом дисковом пространстве и для выполнения операции очистки неиспользуемых данных;
  • Проведена реструктуризация интерфейса командной строки, все команды реорганизованы для более логичного соответствия объектам, с которыми они взаимодействуют. Например, команды «list» и «start», применяемые для вывода списка контейнеров и запуска контейнера, перенесены в команду «docker container» и теперь являются подкомандами («docker container list» и «docker container start» вместо «docker list» и «docker start»), а команда «docker history» преобразована в «docker image history». Поддержка старого синтаксиса команд сохранена для обеспечения обратной совместимости;
  • Расширены средства мониторинга. Добавлена экспериментальная команда «docker service logs», позволяющая упростить отладку сервисов за счёт избавления администратора от ручного сбора логов из отдельных хостов и контейнеров. При выполнении «docker service logs» логи из всех контейнеров, в которых выполняется указанный сервис, будут перенаправлены в текущую консоль. Кроме того, в новой версии появилась точка сбора параметров (/metrics) с метриками контейнеров, образов и состояния управляющего демона, выводящая данные в стиле Prometheus;
  • В команде «docker build» появился новый флаг »--squash», позволяющий агрегировать все производимые при сборке слои файловой системы в один сводный слой, что может оказаться полезным при создании минималистичных образов контейнеров. Ценой такого объединения является увеличение накладных расходов при перемещении образов и невозможность совместного использования таких контейнеров. В команду сборки также добавлен флаг »--compress» для сжатия сборочного контекста, отправляемого из CLI в управляющий демон, что позволяет ускорить сборки, при которых осуществляется взаимодействие с демонами на других хостах;
  • Началось бета-тестирование Docker для облачных платформ AWS и Azure.

© OpenNet