- PVSM.RU - https://www.pvsm.ru -

Работая на MacBook с Docker Desktop, я часто сталкивался с тем, что система становилась менее отзывчивой, особенно при запуске нескольких контейнеров одновременно. Высокая нагрузка на CPU и память заметно влияла на время автономной работы.
Но недавно я наткнулся на OrbStack, и это изменило мой рабочий процесс настолько, что я решил поделиться своим опытом. Спойлер: теперь мой MacBook не превращается в печку, батарея держится дольше, а Docker-контейнеры летают.
OrbStack - это не просто еще одна альтернатива Docker Desktop. Это полноценное решение "всё в одном" для запуска контейнеров, Kubernetes кластера и Linux виртуальных машин на macOS. Когда я впервые услышал об этом, я был настроен скептически. Мы все видели множество "альтернатив" Docker Desktop, которые в итоге создавали больше проблем, чем решали.
Но OrbStack оказался другим. Его главное отличие в том, что он изначально создавался с учетом особенностей macOS и специфики работы с контейнерами на Mac. И это чувствуется буквально во всем.
Первое, что я заметил после перехода - это разница в скорости работы:
OrbStack запускается за 2 секунды, в то время как Docker Desktop обычно требует 20-30 секунд
Сборка образов происходит быстрее примерно на 40-50%
Работа с файлами заметно ускорилась, что особенно заметно в крупных проектах
Значительные улучшения заметны и в использовании системных ресурсов:
RAM используется в 3-4 раза эффективнее
Нагрузка на CPU в режиме ожидания минимальна
Энергопотребление заметно ниже - тесты показывают 180 mW против 726 mW у Docker Desktop при запуске одинаковых контейнеров (такие цифры можно получить при запуске Sentry, commit 15fa261f)
В процессе работы я оценил несколько функций, которые заметно упрощают разработку:
Автоматическое управление доменными именами: каждый контейнер доступен как container-name.orb.local, сервисы Kubernetes как service.namespace.svc.cluster.local, Linux машины как machine-name.orb.local
Прямой доступ к файлам контейнеров через Finder - можно работать с файлами контейнера как с обычной папкой
Отличные возможности отладки, которые особенно полезны при работе с minimal и distroless контейнерами. Правда именно это функция доступна только в платной, остальное в OpenSource, для личного и не коммерческого использования. Я отказался после триала, бесплатной за глаза.
Архитектура у приложения достаточно интересная, сразу видно постарались, а не натянули UI. Из ключевого:
Использование Rosetta вместо QEMU для эмуляции x86 на Apple Silicon, что обеспечивает лучшую производительность
Компоненты, написанные специально для macOS на Swift, Go, Rust и C, что позволяет эффективно использовать системные API
Оптимизированная файловая система на базе VirtioFS с продуманным кэшированием
Собственная реализация сетевого стека с корректной поддержкой VPN и SSH
Когда дело дошло до миграции, я ожидал обычной головной боли с переносом проектов. Но всё оказалось на удивление просто:
# Установка
brew install orbstack
# Миграция данных
orb migrate docker
# Переключение контекста
docker context use orbstack
И всё. Правда. Все мои контейнеры, образы и тома перенеслись автоматически. Более того, я могу легко переключаться между OrbStack и Docker Desktop, если нужно - достаточно сменить контекст.
Это был мой главный страх - совместимость с существующими инструментами. Но оказалось, что всё работает как часы:
В моих любимых JetBrains IDE даже не заметил изменений
В VS Code так же работает без проблем
docker-compose, kubectl, helm - всё продолжает работать как раньше
Отдельно хочу отметить возможность работы с Linux машинами. В отличие от Docker Desktop, OrbStack позволяет запускать полноценные виртуальные машины с различными дистрибутивами Linux. Это особенно удобно, когда нужно:
Протестировать приложение в конкретном дистрибутиве
Запустить сервисы, которые сложно контейнеризировать
Использовать специфичные версии Linux для разработки
OrbStack поддерживает 15 различных дистрибутивов, и работать с ними действительно удобно - каждая машина доступна по имени (machine-name.orb.local), а файлы можно передавать простым перетаскиванием.
Если вам нужно запускать графические Linux-приложения, потребуется дополнительная настройка с использованием XQuartz или Xrdp. Это небольшое ограничение, но для большинства задач разработки оно не критично.
После нескольких месяцев работы с OrbStack могу сказать, что это достойная альтернатива Docker Desktop. Основные преимущества, которые я заметил в повседневной работе:
Более быстрый запуск и работа контейнеров
Эффективное использование системных ресурсов
Удобная работа с файлами и сетью
Возможность запуска полноценных Linux-машин
Простая миграция существующих проектов
При этом важно отметить, что как и любой инструмент, OrbStack может не подойти для всех сценариев использования. Рекомендую попробовать его самостоятельно - благодаря простой миграции это не займет много времени. Потом можно вернуть
P.S. Если вы на Colima, то он тоже быстрее, можно перейти так же легко - установить и переключить контекст.
Автор: Apokalepsis
Источник [1]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/development/400659
Ссылки в тексте:
[1] Источник: https://habr.com/ru/articles/853720/?utm_campaign=853720&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.