Выпуск системы управления контейнерной виртуализацией 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 и реализована настройка, ограничивающая работу только с образами, имеющими корректные цифровые подписи (блокировка в случае обнаружения нарушения целостности контейнера).



URL записи