З анонсом власної системи контейнеризації в macOS 26 Tahoe компанія Apple офіційно увійшла у світ контейнерних середовищ. Її нова Swift-орієнтована, open source платформа Containerization Framework та утиліта Container CLI пропонують нативну альтернативу Docker, спеціально оптимізовану під Apple Silicon і macOS. Про це йдеться в матеріалі The New Stack.
Основна відмінність — архітектура «одна віртуальна машина на контейнер» (VM-per-container), яка замінює традиційну модель спільної VM. Такий підхід вирішує багаторічні проблеми із продуктивністю та безпекою на Mac-системах і забезпечує рівень ізоляції, еквівалентний повноцінним віртуальним машинам.
Архітектура контейнерів Apple: VM для кожного
Apple створює окрему, легку віртуальну машину для кожного контейнера, використовуючи macOS Virtualization Framework.
Кожна така VM має:
• спеціально оптимізоване ядро Linux для швидкого запуску;
• мінімальний root-файловий набір;
• повну ізоляцію на рівні гіпервізора.
Відсутні стандартні бібліотеки coreutils і glibc. Це мінімізує площу атаки та прискорює запуск (менше секунди).
vminitd — власна Swift-система ініціалізації
Усередині кожної VM працює vminitd — кастомна система ініціалізації, повністю написана на Swift. Вона виконує:
• призначення IP-адреси;
• монтування файлових систем;
• запуск і контроль процесів;
• оброблення API для взаємодії між хостом і контейнером.
Цей init працює в екстремально мінімальному середовищі без libc, без динамічних бібліотек, лише зі статично скомпільованими бінарниками через Swift Static Linux SDK + musl.
Архітектура Docker Desktop на macOS
Docker Desktop реалізує модель спільної віртуальної машини. Всі контейнери запускаються всередині однієї Linux VM, створеної через:
• Hyperkit (застаріває);
• Apple Virtualization Framework;
• QEMU (не рекомендують для Apple Silicon).
Ця архітектура спричиняє:
• постійне навантаження на систему (VM працює у фоні);
• неефективне використання ресурсів;
• проблеми із синхронізацією файлових систем між macOS і Linux VM.
Попри покращення (VirtioFS, Resource Saver Mode), основна архітектурна проблема залишається.
Безпека: Apple — гіпервізор, Docker — ядро Linux
Apple забезпечує повну ізоляцію контейнерів на рівні гіпервізора:
• жодного спільного ядра;
• власна IP-адреса для кожного контейнера;
• доступ до директорій надається точково лише тим, кому це дозволено;
• зникає потреба в порт-форвардингу.
Docker покладається на:
• kernel namespaces і cgroups;
• спільне ядро для всіх контейнерів;
• контроль доступу через ACL і вручну налаштовані політики;
• обмежену безпеку в разі вразливостей у ядрі.
Досвід розроблення
Apple Container CLI:
• підтримка OCI-образів;
• знайомі команди (container run
, container exec
, container ps
);
• інтеграція зі Swift/Xcode;
• мінімальний поріг входу для macOS/iOS-розробників.
Docker:
• гігантська екосистема;
• Docker Compose, Docker Swarm, Kubernetes;
• CI/CD-інтеграції, централізоване керування, репозиторії образів;
• підтримка Windows, Linux, macOS (і ARM, і x86).
Обмеження Apple Containers
• потрібен macOS 26 Tahoe (на Sequoia є обмеження по мережі);
• тільки Apple Silicon — на Intel-пристроях не оптимізовано;
• немає аналогів Docker Compose, orchestration, enterprise tooling;
• поки немає централізованого менеджменту, спостереження.
Недоліки Docker на Mac
• споживає ресурси навіть у фоні;
• неефективний при багатьох одночасних контейнерах;
• погіршення батареї, перегрівання;
• кросплатформеність через Rosetta 2, але з втратами продуктивності.
Висновок
Apple створила революційну платформу для контейнерів, яка дає:
• ізоляцію рівня віртуальних машин;
• максимальну продуктивність під Apple Silicon;
• новий стандарт безпеки для контейнеризації на macOS.
Поки Docker залишається вибором за замовчуванням для production через зрілу екосистему, хмарну підтримку й інтеграції зі CI/CD.
Читайте також на ProIT: Canonical пропонує контейнери Docker LTS, які змінюють правила гри для підприємств.
Підписуйтеся на ProIT у Telegram, щоб не пропустити жодної публікації!