ArcBox бросает вызов OrbStack и запускает изолированные песочницы на Mac

03 сен 2026
2,346
58
41
1 неделя

Если вы разрабатываете на macOS, то наверняка помните историю с Docker Desktop. Сначала сервис ограничил бесплатное использование для компаний, а затем стал нещадно греть процессор и отъедать память гигабайтами. На замену пришел быстрый OrbStack, но его код закрыт, а за коммерческую лицензию приходится платить.

Недавно на GitHub появился проект ArcBox. Разработчики решили создать открытую альтернативу Docker Desktop и OrbStack, написанную с нуля на Rust. Причем авторы не стали делать простую обертку над стандартными системными API Apple. Они написали собственный гипервизор, кастомные драйверы VirtIO и сетевой стек в пространстве пользователя.

Один демон и одна консольная утилита abctl управляют сразу четырьмя типами нагрузок:

  • Стандартные контейнеры Docker и локальный Kubernetes на базе k3s.
  • Одноразовые микро-виртуалки на Firecracker для запуска непроверенного кода и автономных AI-агентов.
  • Полноценные виртуальные машины с Linux (Ubuntu, Alpine).
  • Одноразовые копии macOS, которые клонируются за доли секунды.

Замена Docker и работа с файлами без фокусов

ArcBox создает совместимый сокет, к которому подключается стандартный Docker CLI. Ваши привычные сценарии сборки, запуск docker compose и локальные скрипты продолжают работать без изменений.

abctl daemon start
abctl docker enable

docker run -d -p 8080:80 nginx
curl http://localhost:8080

Для сборки образов используется встроенный BuildKit. Если вам нужно запустить x86-образ на процессоре Apple Silicon, ArcBox использует эмулятор FEX. Никаких настроек крутить не придется: эмуляция работает прямо внутри гостевой системы.

Реклама
docker run --platform linux/amd64 alpine uname -m
# x86_64

Интересно сделан доступ к файловой системе контейнеров. Данные Docker монтируются на хосте в папку ~/ArcBox через NFSv4 поверх vsock. Именованные тома, слои образов и состояние контейнеров доступны в обычном Finder. Файлы можно смотреть стандартными утилитами вроде grep или cat без необходимости вызывать docker cp.

open ~/ArcBox
grep -r "panic" ~/ArcBox/volumes/my-app-data/_data

Для локальной разработки пригодится встроенный k3s. Команда abctl k8s enable сама настраивает kubectl и объединяет конфигурационные файлы. Если вы предпочитаете настраивать окружение вручную, abctl k8s kubeconfig выведет готовый конфиг в терминал.

Безопасные песочницы для AI-агентов

Сейчас многие пробуют в работе автономных ассистентов вроде Claude Code. Давать агенту прямой доступ к своей рабочей машине рискованно: скрипт может удалить важные файлы или выполнить опасную команду. Постоянно жать кнопки подтверждения в терминале — утомительно.

Разработчики ArcBox придумали элегантный выход. Они запускают микро-виртуалки с собственным ядром через вложенный Firecracker:

export ANTHROPIC_API_KEY=sk-...
abctl claude

Эта команда собирает изолированную среду и открывает сессию с Claude Code. Внутри песочницы запросы разрешений отключены, потому что границей изоляции служит сама микро-VM. Каталог /workspace изначально пуст. Агент клонирует нужный репозиторий, выполняет задачи, а вы забираете готовый результат обратно на хост.

Песочницы подходят не только для Claude. Вы можете создавать изолированные среды из любых Docker-образов, пробрасывать порты и делать моментальные снимки:

# Создание песочницы из образа
abctl sandbox create --from-image myapp:latest --memory 512 --ttl 3600

# Выполнение бинарника внутри
abctl sandbox run <id> -- ./untrusted-binary

# Сохранение снимка и быстрый запуск копии
abctl sandbox checkpoint <id> --name clean
abctl sandbox restore <snapshot-id>

Снимки возвращают окружение в рабочее состояние почти без задержки на холодный старт.

Полноценный Linux и чистые копии macOS

Когда возможностей контейнера не хватает, ArcBox поднимает виртуальные машины с собственным диском и ядром. Сейчас поддерживаются дистрибутивы Ubuntu и Alpine:

abctl machine create dev --distro ubuntu --disk 50 --mount ~/code:/code
abctl machine start dev
abctl machine ssh dev

На Apple Silicon утилита также умеет создавать гостевые виртуалки с macOS. Вы один раз скачиваете базовый образ, после чего система делает copy-on-write клон на диске APFS за считанные микросекунды.

abctl macos image pull tahoe-base
abctl macos create ci --image tahoe-base --cpus 4 --memory 8192
abctl macos start ci

Это удобно для прогона CI-тестов в чистой системе. Стоит помнить, что Apple по лицензии разрешает запускать не больше двух гостевых копий macOS на одном компьютере. ArcBox работает в рамках этих правил через Virtualization.framework.

Что спрятано под капотом

Большая часть производительного кода проекта написана с нуля на Rust. Авторы не стали полагаться на готовые прослойки и реализовали собственные механизмы:

  1. Два бэкенда виртуализации. Собственный VMM на базе Hypervisor.framework с ручным управлением vCPU, а также альтернативный бэкенд на Virtualization.framework. Переключаться между ними можно командой abctl system backend hv|vz.
  2. Собственные VirtIO-устройства. Реализованы virtio-net, virtio-blk, virtio-fs, virtio-console, virtio-vsock, virtio-rng и balloon-драйвер для динамического контроля памяти.
  3. Сетевой стек в userspace. Никаких pf NAT и виртуальных интерфейсов utun. ArcBox сам обрабатывает DHCP, DNS, трансляцию адресов и склеивает гостевые потоки напрямую с сокетами macOS. Контейнеры доступны по IP, а локальные домены резолвятся через зону *.arcbox.local.

Замеры разработчиков показывают скорость передачи данных от хоста к виртуальной машине до 22.7 Гбит/с на одном потоке. Это примерно в два раза быстрее стандартного VirtIO-net от Apple в аналогичных условиях.

Миграция с Docker Desktop и OrbStack

Если у вас уже настроено рабочее окружение, переносить образы и тома руками не нужно. В CLI встроена автоматическая миграция:

# Проверить план переноса без изменений
abctl migrate from orbstack --dry-run

# Запустить перенос данных
abctl migrate from docker-desktop

Команда копирует именованные тома, пользовательские bridge-сети и образы со всеми тегами. Контейнеры, которые работали в исходной системе, автоматически поднимутся в ArcBox после завершения переноса.

Ограничения и системные требования

ArcBox находится в статусе публичной беты. Перед установкой важно учесть несколько моментов:

  • Поддерживаются компьютеры Mac на процессорах Apple Silicon. Поддержка чипов Intel пока в разработке.
  • Для запуска песочниц и команды abctl claude потребуется процессор M3 или новее и macOS 15. Это аппаратное требование Apple для работы вложенной виртуализации.
  • Демон ArcBox не требует прав root при обычной работе. Для редких системных операций используется фоновый помощник с проверкой цифровой подписи.

Для мониторинга ресурсов можно использовать встроенную команду abctl top или отдельное графическое приложение ArcBox Desktop, написанное на SwiftUI.

Стоит ли пробовать

ArcBox выглядит очень многообещающе. Это редкий пример открытого системного софта под macOS с открытыми лицензиями MIT и Apache-2.0, где авторы глубоко проработали сетевой стек и виртуализацию.

Проект особенно пригодится:

  • Разработчикам на Mac с чипами серии M, уставшим от аппетитов Docker Desktop.
  • Тем, кто запускает автономных AI-агентов и ищет способ изолировать их без ручной настройки Firecracker.
  • Инженерам, которым нужен легковесный локальный k3s.
  • Командам, тестирующим сборки под чистую macOS в автоматическом режиме.

Установить утилиту можно через Homebrew:

brew install --cask arcboxlabs/tap/arcbox

После установки выполните abctl doctor, чтобы проверить готовность системы к работе.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.