Выпуск cистемы управления контейнерной виртуализацией Docker 18.09
Представлен релиз инструментария для управления изолированными Linux-контейнерами Docker 18.09, предоставляющего высокоуровневый API для манипуляции контейнерами на уровне изоляции отдельных приложений. Docker позволяет, не заботясь о формировании начинки контейнера, запускать произвольные процессы в режиме изоляции и затем переносить и клонировать сформированные для данных процессов контейнеры на другие серверы, беря на себя всю работу по созданию, обслуживанию и сопровождению контейнеров. Инструментарий базируется на применении встроенных в ядро Linux штатных механизмов изоляции на основе пространств имён (namespaces) и групп управления (cgroups). Код Docker написан на языке Go и распространяется под лицензией Apache 2.0.
Основные изменения:
- Начиная с Docker 18.09 время поддержки выпуска увеличено с 4 до 7 месяцев в связи с модернизацией цикла разработки Docker Community Edition (стабильные релизы теперь формируются не раз в квартал, а раз в полгода, плюс для тестирования введены ночные сборки);
- Базовый runtime для управления контейнерами обновлён до выпуска containerd 1.2, в котором стабилизировано использование механизма gRPC для управления контейнерами, обеспечена совместимость с платформой Kubernetes 1.12 и улучшена поддержка универсальных образов для различных архитектур (multi-arch);
- Расширены возможность нового сборочного бэкенда (обеспечивает функциональность команды «docker build») BuildKit, построенного с использованием расширяемой модульной архитектуры, поддерживающего распараллеливание процесса разрешения зависимостей в несколько потоков, эффективно использующего кэширование инструкций и результатов импорта/экспорта, жестко не привязанного к формату файлов Dockerfile, автоматически выполняющего операции сборки мусора, поддерживающего вложенный запуск работ и не требующего в процессе работы полномочий пользователя root. По сравнению с прошлым выпуском:
- Переработан код для организации параллельного выполнения работ и изменена модель кэширования, что позволило существенно ускорить сборку. Например, при тестировании Dockerfile проекта moby скорость сборки возросла от 2 до 9.5 раз за счёт одновременного выполнения разных стадий сборки, игнорирования неиспользуемых стадий и файлов, инкрементальной передачи данных между сборками с учётом контекста;
- Добавлена возможность интеграции в Dockerfile «секретов» (secrets) и их безопасной передачи в процессе сборки, без сохранения в результирующих образах и без оседания в сборочном кэше;
- Реализована возможность проброса по SSH сокетов ssh-agent, например, для соединения с приватными репозиториями с использованием существующего соединения через ssh-agent;
- Появилась возможность управления сборочным кэшем, отдельно от образов. Добавлена новая команда «docker builder prune» для очистки кэша и возможность определения правил очистки;
- Представлена новая директива »#syntax», позволяющая подключать расширения для парсинга Dockerfile;
- Добавлена возможность использования BuildKit без включения экспериментального режима.
- Объявлена устаревшей поддержка драйверов хранения devicemapper и overlay, прекращена поддержка версий TLS меньше 1.2, удалена поддержка платформ Ubuntu 14.04 и Debian 8 «Jessie»;
- API обновлён до версии 1.39. Добавлена поддержка удалённого обращения при помощи SSH;
- Добавлена новая команда «docker engine» для управления жизненным циклом Docker Engine, запущенном в отельном привилегированном контейнере на базе containerd;
- Обновлены сценарии автодополнения ввода для bash и zsh;
- Добавлен новый драйвер ведения логов local, позволяющий хранить лог в локальном файле. В отличие от jsonfilelog новый драйвер не привязан к конкретному формату лога;
- Добавлена поддержка применения по умолчанию глобального пула адресов;
На базе Docker Engine 18.09 сформирован выпуск коммерческого продукта Docker Enterprise 2.1, отличающийся поставкой дополнительных плагинов, поддержкой SLA (Service Level Agreement) и средствами для верификации по цифровым подписям. В новой версии добавлены модули для верификации в соответствии с требованиями FIPS 140–2 и реализована настройка, ограничивающая работу только с образами, имеющими корректные цифровые подписи (блокировка в случае обнаружения нарушения целостности контейнера).
© OpenNet