Компания Amazon объявила о реализации поддержки платформы Linux в инструментарии Finch, ранее доступном только для платформ Windows и macOS, и изначально развивавшемся для упрощения работы с Linux-контейнерами на хост-системах не на основе ядра Linux. Finch позволяет собирать, публиковать и запускать Linux-контейнеры в формате OCI (Open Container Initiative). Код Finch написан на языке Go и распространяется под лицензией Apache 2.0.
Интерфейс командной строки в Finch реализован с использованием наработок проекта nerdctl, предоставляющего совместимый с Docker набор команд для сборки, запуска, публикации и загрузки контейнеров (build, run, push, pull и т.п.), расширенного дополнительными возможностями, такими как режим работы без root, шифрование образов, распространение образов в режиме P2P при помощи IPFS и заверение образов цифровой подписью. В качестве runtime для управления контейнерами применяется containerd. Для сборки образов в формате OCI задействован инструментарий BuildKit.
В версиях для Windows и macOS для запуска виртуальных машин с Linux, настройки совместного доступа к файлам и перенаправления сетевых портов в Finch применяется отдельная прослойка Lima, позволяющая использовать технологии виртуализации VF (Virtualization Framework) в macOS и WSL2 в Windows для реализации используемых в Linux примитивов изоляции. В версии Finch для Linux вместо
Lima осуществляется прямое обращение к штатным возможностям ядра, таким как пространства имён и cgroup.
Finch связывает nerdctl, containerd и BuildKit в одно целое и позволяет сразу приступить к работе, без необходимости разбираться и настраивать все эти компоненты по отдельности. Для работы предлагается собственная утилита finch, которая скрывает за унифицированным интерфейсом детали работы с каждым входящим в состав компонентом. Для начала работы достаточно установить один пакет, который включает всё что необходимо, после чего можно сразу создавать и запускать контейнеры.
В версии для Linux доступны все возможности, ранее предоставляемые для macOS и Windows, среди которых сборка образов контейнеров на основе Dockerfiles, запуск контейнеров на локальной системе, помещение и извлечение образов контейнеров из реестров, управление сетями и дисковыми разделами, использование команды "finch compose" для формирования многоконтейнерых приложений.
В процессе разработки Finch компанией Amazon также подготовлено несколько расширений к nerdctl, которые уже приняты в основной состав данного проекта. В частности, в nerdctl добавлены компоненты для заверения образов цифровой подписью и реализация возможности создания и запуска образов, используя технологию
SOCI (Seekable OCI), изначально созданную для AWS и позволяющую заметно ускорить загрузку образов контейнеров (SOCI позволяет начать запуск, не дожидаясь окончания полной загрузки образа, и подгружать необходимые для работы части по мере необходимости).
|