Компания Apple представила инструментарий для создания, загрузки и выполнения Linux-контейнеров в macOS. Работа контейнеров в macOS обеспечивается с использованием легковесных виртуальных машин с ядром Linux, запускаемых при помощи гипервизора Virtualization.framework. Для работы с Linux-контейнерами предложено два пакета – containerization и container, написанных на языке Swift и открытых под лицензией Apache 2.0.
Пакет Containerization предоставляет низкоуровневый API для управления образами контейнеров в формате OCI, загрузки контейнеров из внешних репозиториев, создания корневой ФС Ext4, обеспечения сетевого взаимодействия, сборки быстрозагружаемых вариантов ядра Linux, создания виртуальных машин и запуска в них отдельных контейнеров. Контейнеры можно связывать с отдельными IP-адресами. Для организации работы виртуального сетевого стека, привязанного к каждому контейнеру, задействован фреймворк vmnet.
На запуск виртуальной машины тратится менее секунды, благодаря применению оптимизированной конфигурации ядра Linux и урезанного системного окружения с легковесным init-процессом vminitd. Взаимодействие с процессом инициализации в виртуальной машине осуществляется через API GRPC поверх vsock. Данный API позволяет настраивать параметры рабочего окружения и запускать поверх виртуальной машины контейнеры с выбранной пользователем начинкой или отдельными изолированными процессами.
Пакет Container представляет собой надстройку над API Containerization, реализующую высокоуровневый инструментарий в стиле Docker для создания, загрузки, запуска и остановки образов Linux-контейнеров в формате OCI.
Управление сервисами при запуске контейнеров осуществляется при помощи системного менеджера Launchd.
Инструментарий может использоваться в macOS 15, но для полноценной работы и исключения возникновения проблем рекомендуется использовать версию macOS 26 Beta 1. Например, в macOS 15 не работает прямое сетевое взаимодействие между контейнерами и ограничена привязка отдельных IP к контейнерам. Возможна работа на ARM-системах Apple Silicon Mac (M1/M2/M3/M4), компьютеры на базе процессоров Intel не поддерживаются.
Для запуска контейнеров, собранных для архитектуры x86_64, применяется транслятор процессорных инструкций Rosetta 2.
