Docker Engine 29 Containerd становится стандартом по умолчанию, экспериментальная поддержка nftables

Docker, ведущая платформа с открытым исходным кодом для разработки, доставки и запуска приложений в контейнерах, официально выпустила Docker Engine 29, в котором основное внимание уделяется модернизации и соответствию более широкой контейнерной экосистеме.
Наиболее значимое изменение заключается в том, что хранилище образов containerd теперь используется по умолчанию для всех новых установок. Это изменение заменяет устаревший бэкенд Docker драйвер графа для управления слоями образов. На самом деле в этом нет ничего удивительного.
Containerd уже давно лежит в основе среды выполнения Docker, но до сих пор Docker продолжал использовать собственную подсистему хранения для управления образами. Внедрение хранилища образов containerd упрощает архитектуру Docker за счёт унификации выполнения и хранения, сокращения дублирования и приведения Docker Engine в соответствие с такими платформами, как Kubernetes, которые уже зависят от containerd.
Для пользователей это изменение даёт следующие преимущества:
- Упрощенный дизайн: Docker Engine теперь использует containerd как для среды выполнения, так и для хранилища.
- Улучшенная совместимость: соответствует инструментам и рабочим процессам на основе containerd.
- Будущие инновации: поддержка новых функций, таких как оптимизация моментальных снимков, отложенное извлечение и одноранговое распространение образов.
Существующие установки продолжат использовать текущую конфигурацию, но новые пользователи и свежие установки будут автоматически использовать хранилище образов containerd.
Ещё одно примечательное дополнение — экспериментальная поддержка nftables. До сих пор Docker Engine использовал традиционные iptables и ip6tables для управления правилами мостовых и оверлейных сетей. Однако, поскольку дистрибутивы Linux постепенно отказываются от iptables, Docker переходит на более современную и эффективную систему межсетевых экранов.
Если эта функция включена, Docker Engine версии 29 может напрямую создавать правила nftables, не прибегая к трансляции через iptables-nft. Пользователи могут протестировать nftables, запустив Docker с помощью следующей команды:
dockerd --firewall-backend=nftables
Помните, что эта функция всё ещё находится на стадии эксперимента и пока не рекомендуется для использования в рабочей среде. В следующих выпусках планируется поддержка Docker Swarm и дальнейшая оптимизация nftables.
Проект Moby от Docker — ядро с открытым исходным кодом, лежащее в основе Docker Engine, — был переведён на модули Go, которые заменили устаревшую систему управления зависимостями.
В то же время в Docker Engine версии 29 минимальная поддерживаемая версия API была повышена до 1.44, что соответствует Moby версии 25. Это означает, что более старые клиенты Docker (версии 25 и ниже) по умолчанию больше не смогут взаимодействовать с последней версией Docker Engine.
Кроме того, помимо упомянутых выше изменений, новая версия содержит множество исправлений ошибок и улучшений. Подробнее см. в полном списке изменений или примечаниях к выпуску: https://docs.docker.com/engine/release-notes/29/ для этой версии. Официальное объявление опубликовано в блоге Docker: https://www.docker.com/blog/docker-engine-version-29/.
Пользователи Linux, использующие Docker, могут обновиться до версии 29 через репозитории своего дистрибутива. Пользователи Docker Desktop получат эти изменения автоматически в следующих обновлениях Docker Desktop.
Редактор: AndreyEx
Важно: Данная статья носит информационный характер. Автор не несёт ответственности за возможные сбои или ошибки, возникшие при использовании описанного программного обеспечения.