Спустя год после того, как Apple представила свой open-source инструмент для контейнеров, написанный на Swift и нативно запускающий Linux-контейнеры на macOS, проект вышел в стабильную версию 1.0.
Для тех, кто пропустил первоначальный анонс, уточним: инструмент Apple Container позволяет создавать, запускать, собирать и публиковать OCI-совместимые Linux-контейнеры прямо из macOS через командную строку.
Поскольку macOS не запускает Linux-контейнеры нативно, как это делает Linux-хост, подход Apple основан на лёгких виртуальных машинах Linux, при этом каждый контейнер получает собственное изолированное окружение.
В отличие от обычных контейнеров, которые обычно заточены под одно приложение или процесс, container machine спроектирована как постоянное Linux-окружение. По заявлению Apple, она создана для того, чтобы обеспечить глубоко интегрированную среду Linux, которая легко работает на Mac, на основе стандартных OCI-образов, доступных для сборки и распространения.
Это важно, поскольку вместо запуска только кратковременных контейнеров пользователи могут создавать долгоживущие Linux-окружения, которые сохраняются между сессиями, запускают систему инициализации и поддерживают длительно работающие сервисы.
Что касается интеграции с хостом, container machine автоматически пробрасывает имя пользователя macOS и домашний каталог в Linux-окружение, делая репозитории и конфигурационные файлы доступными с обеих сторон. Разработчики могут редактировать код в привычных инструментах macOS, таких как своя IDE или редактор, и одновременно собирать и запускать проект внутри Linux.
Добавлена поддержка реальных сервисов Linux, что делает container machine подходящим для тестирования приложений с фоновыми службами в Linux-окружении.
Также поддерживаются несколько целевых дистрибутивов. Разработчики могут создавать отдельные машины для Alpine, Ubuntu, Debian и других образов Linux, при этом используя общий домашний каталог macOS и конфигурационные файлы.
Управление этими окружениями осуществляется через новый набор команд container machine. Пользователи могут создавать машины, открывать интерактивные оболочки, выполнять разовые команды, задавать машину по умолчанию, просматривать и проверять окружения, останавливать и удалять их, а также менять настройки, такие как выделение процессора и памяти. Монтирование домашнего каталога настраивается на чтение и запись, только чтение или может быть отключено.
Для опытных пользователей container machine поддерживает вложенную виртуализацию, но с важными требованиями. Необходим Mac на Apple Silicon M3 или новее с macOS 15 и выше, а также ядро Linux, собранное с поддержкой KVM. Apple отмечает, что стандартное ядро этого не поддерживает, поэтому пользователям, которым нужна вложенная виртуализация, придётся предоставить подходящее кастомное ядро.
Конечно, это не означает, что Docker Desktop на macOS внезапно стал неактуальным. Docker по-прежнему обладает более широкой экосистемой, Compose-воркфлоу, графическими инструментами, интеграциями и признанием среди разработчиков. Для многих пользователей, особенно тех, кто уже вложился в процессы на Docker, инструмент Apple не станет прямой заменой.
Apple Container 1.0 уже доступен в репозитории проекта на GitHub. Документация размещена здесь.




Пока нет комментариев. Будьте первым!