Oxcart Скачать
Меню

Переход с Docker Desktop или OrbStack на Oxcart

Переход на Oxcart занимает несколько минут: установите его, выполните docker context use oxcart и перенесите нужные образы и тома с помощью docker save, docker load и tar-архива. Oxcart устанавливается рядом с Docker Desktop или OrbStack, спрашивает перед заменой их инструментов docker и позволяет вернуться одной командой.

Обновлено

Перед началом

  • Mac с Apple silicon и macOS 26 или новее.
  • Другое приложение должно работать, чтобы его контекст отвечал во время копирования образов и томов.
  • Список того, что действительно нужно: образы, которые нельзя скачать снова, и именованные тома с данными (базы данных, загруженные файлы). Всё остальное быстрее создать заново.
  • Сначала попробуйте один типичный проект Compose. Убедитесь, что сервисы запускаются, данные на месте, а опубликованные порты отвечают, прежде чем переносить остальные проекты.

Пошаговый переход на Oxcart

  1. Установите Oxcart. Скачайте Oxcart (Apple silicon, macOS 26 или новее) и откройте его. Настройка работает без интернета и занимает секунды; пароль администратора запрашивается один раз для помощника, создающего ссылки на инструменты командной строки.
  2. Решите, заменять ли инструменты docker. Если Docker Desktop или OrbStack установил docker, Oxcart показывает обе версии каждого инструмента и спрашивает перед заменой. Replace включён по умолчанию; Uninstall возвращает инструменты другого приложения.
  3. Выберите контекст oxcart. При настройке создаётся контекст Docker oxcart. Он становится текущим, только если текущий контекст — default и на нём ничто не отвечает, поэтому после другого приложения обычно нужно самостоятельно выполнить docker context use oxcart.
  4. Перенесите нужные образы. Скачайте их заново или передайте потоком из другого приложения через docker save в docker load, сохранив теги и дайджесты.
  5. Перенесите тома с данными. Упакуйте каждый именованный том в tar-архив через небольшой контейнер в другом приложении, затем распакуйте в новый том в Oxcart.
  6. Запустите проекты Compose. Выполните docker compose up -d --wait в папке каждого проекта. Перенесённые под тем же именем тома будут использованы.
  7. Перенастройте инструменты с явно заданным подключением на Oxcart. Инструменты, учитывающие контекст Docker, находят Oxcart сами. Если инструмент читает только DOCKER_HOST, задайте в ней адрес контекста oxcart.

Команды

Найдите контексты и переключитесь

docker context ls

В списке видны контекст oxcart и контекст другого приложения; текущий отмечен звёздочкой. Затем:

docker context use oxcart

Скопируйте образы из другого приложения

Передавайте образы напрямую из одного движка в другой, без промежуточного файла. Теги и дайджесты сохраняются.

# OTHER is the other app's context name from `docker context ls`
OTHER=<other-context>
docker --context "$OTHER" save postgres:17-alpine myapp:dev | docker --context oxcart load

Чтобы перенести сразу все образы с тегами:

docker --context "$OTHER" images --format '{{.Repository}}:{{.Tag}}' | grep -v '<none>' \
  | xargs docker --context "$OTHER" save | docker --context oxcart load

Образы, собранные из Dockerfile, зачастую быстрее пересобрать в Oxcart с помощью docker build или docker compose build; в нашем тесте пересборка с кешем занимала 121 ms.

Перенесите именованный том

В этом примере переносится том Postgres с именем pgdata. Tar-архив записывается в папку внутри вашей домашней папки: Oxcart по умолчанию предоставляет контейнерам доступ к домашней папке, и другое приложение тоже должно уметь подключать её через bind mount. Сначала остановите использующие том контейнеры, чтобы копия была согласованной.

mkdir -p ~/volume-move && cd ~/volume-move
# 1. Pack the volume in the other app
docker --context "$OTHER" run --rm -v pgdata:/from -v "$PWD":/backup alpine \
  tar -C /from -czf /backup/pgdata.tgz .
# 2. Unpack it into a new volume in Oxcart
docker --context oxcart volume create pgdata
docker --context oxcart run --rm -v pgdata:/to -v "$PWD":/backup alpine \
  tar -C /to -xzf /backup/pgdata.tgz

Compose именует тома по схеме <project>_<volume>. Создайте том в Oxcart с тем же полным именем (см. docker volume ls в другом контексте), и Compose будет его использовать.

Запустите проекты Compose

cd ~/code/myproject
docker compose up -d --wait

Зависимости от проверок состояния, up --wait, DNS по именам сервисов, init: true и network_mode: service: работают как прежде. См. Docker Compose на Apple silicon.

Инструменты, читающие DOCKER_HOST

Oxcart никогда не создаёт и не заменяет /var/run/docker.sock; CLI docker, Compose, Buildx и большинство SDK учитывают текущий контекст. Если инструмент читает только DOCKER_HOST, направьте его на Oxcart:

export DOCKER_HOST="$(docker context inspect oxcart --format '{{.Endpoints.docker.Host}}')"

Внутри контейнеров монтирование /var/run/docker.sock работает как обычно для Testcontainers, docker-outside-of-docker, Portainer и Traefik. См. Dev Containers и Testcontainers на Mac.

Переключитесь обратно

docker context use <other-context>   # back to the other app
docker context use oxcart            # and to Oxcart again

Что изменится после перехода

Измерено на одном Mac с Apple silicon; медианы, меньше — лучше
ОперацияOxcart 0.1.2OrbStack 2.2.3Docker Desktop 4.94.0
docker run --rm … true42.3 ms220 ms143 ms
docker stop19.2 ms107 ms128 ms
Остановить и удалить 20 контейнеров76.7 ms1,224 ms683 ms
Сборка с кешем121 ms283 ms149 ms

Oxcart 0.1.2 измерен 2026-10-10 с комплектным клиентом docker 29.9; OrbStack 2.2.3 и Docker Desktop 4.94.0 измерены ранее в тот же день на том же Mac и тем же набором тестов с docker 29.4. Полные таблицы: сравнение с Docker Desktop и сравнение с OrbStack.

Вы также получаете локальный MCP-сервер для агентов программирования (настройка одной вставкой), порты, сгруппированные по репозиторию и ветке, и трафик контейнеров, учитывающий ваши правила VPN, DNS и межсетевого экрана (руководство по сетям).

Вопросы

Нужно ли сначала удалить Docker Desktop или OrbStack?

Нет. Oxcart устанавливается рядом с ними со своим контекстом Docker oxcart. Переключайтесь через docker context use. Оставьте другое приложение установленным, пока не перенесёте всё нужное.

Изменит ли Oxcart мой текущий контекст Docker?

Только если текущий контекст — default и на нём ничто не отвечает. Если текущим выбран контекст другого приложения, Oxcart не меняет его; вы сами переключаетесь командой docker context use oxcart.

Переносятся ли образы и тома автоматически?

Нет. Каждое приложение хранит собственные образы и тома. Скачайте образы заново или передайте их через docker save | docker load; именованные тома с данными перенесите с помощью tar-архива, как показано выше. Тома с кешами или другими временными данными можно просто создать заново.

Что будет с учётными данными реестров?

Если при скачивании запрашиваются учётные данные, один раз выполните docker login. Oxcart хранит пароль в Связке ключей macOS через docker-credential-osxkeychain; в config.json остаётся только имя реестра.

Можно ли сохранить привычный процесс разработки?

Да. Продолжайте использовать CLI docker, Compose, Buildx, Dev Containers и Testcontainers. Oxcart поддерживает привилегированные контейнеры, в том числе privileged: true в Compose. Сначала перенесите один проект, проверьте его порты и данные, затем переходите к остальным, когда будете готовы. Другой контекст Docker остаётся доступным на протяжении всего перехода.

Сохраняются ли контейнеры при обновлении?

Да. При обновлении Oxcart сохраняются все контейнеры, образы, тома и сети.

Как вернуться обратно?

Выполните docker context use с именем контекста другого приложения. При удалении Oxcart действие Uninstall восстанавливает все заменённые им инструменты docker.

Источники и методика

  • Настройка, инструменты командной строки и контекст Docker: поставляемая версия Oxcart 0.1.3.
  • Совместимость: проверена на Oxcart, 2026-10-10 (save и load с сохранением тегов и дайджестов, Compose, сокет Docker в контейнерах).
  • Тесты производительности: Oxcart 0.1.2, OrbStack 2.2.3 и Docker Desktop 4.94.0, измерения 2026-10-10 на одном Apple M5 Max, по 8 CPU и 12 GB каждому, продукты запускались по одному, медианы пяти замеров.
  • Имена контекстов других приложений зависят от приложения и версии: посмотрите их в docker context ls.

Попробуйте Oxcart на своих проектах

Бесплатно на 60 дней. Затем $20 за пользователя и основную версию — без подписки.

Apple silicon · macOS 26 или новее

Читайте дальше

История версий

Oxcart 0.1.4

Последняя версия

Лицензирование и улучшения.

  • Активация лицензии по защищённой ссылке из электронного письма.
  • Управление лицензией и компьютерами Mac из Settings.
  • Проверка лицензии без интернета.
  • Повышение производительности, доработка интерфейса и исправление ошибок.

Требуется macOS 26.0 или новее

Oxcart 0.1.3

Освобождение памяти при простое.

  • Освобождает память ВМ, когда нет работающих контейнеров.
  • Сохраняет контейнеры, образы, тома и сети.

Требуется macOS 26.0 или новее

Oxcart 0.1.2

Интеграция инструментов командной строки.

  • Переключайтесь между инструментами Docker из комплекта Oxcart и уже установленными.
  • Доработка интерфейса.

Требуется macOS 26.0 или новее

Oxcart 0.1.1

Инструменты Docker в комплекте и управление агентами.

  • В комплект входят Docker CLI 29.9, Compose 5.6 и Buildx 0.38.
  • Интеграция с контекстами Docker и безопасное хранение учётных данных в Связке ключей.
  • Подключение агентов через MCP с отдельными разрешениями и блокировкой для каждого агента.

Требуется macOS 26.0 или новее

Oxcart 0.1.0

Docker-совместимые контейнеры для Apple silicon.

  • Совместимость с Docker CLI, Compose и Buildx.
  • Настройка без интернета: компоненты среды выполнения входят в комплект.
  • Порты упорядочены по проектам и веткам Git.
  • Интеграция с MCP с доступом только для чтения по умолчанию.
  • Автоматические обновления с проверкой подлинности.

Требуется macOS 26.0 или новее