← Ко всем open source проектам

Docker-OSX

sickcodes/Docker-OSX

Docker-OSX — проект для запуска macOS в Docker-контейнере через QEMU/KVM.

Форки 2,880
Автор sickcodes
Язык Shell
Лицензия GPL-3.0
Обновлено 2026-06-27

Что это такое

Docker-OSX — инструмент для запуска macOS внутри контейнеризованной оболочки с QEMU/KVM. Он не превращает Docker в полноценную виртуализацию сам по себе, а собирает вокруг виртуальной машины удобный способ запуска.

Проект появился из практической потребности: тестировать macOS, сборки, безопасность и поведение приложений без постоянного ручного поднятия виртуальной машины.

Что внутри репозитория

Внутри находятся Dockerfile, сценарии запуска, параметры QEMU, инструкции для разных образов macOS и большое количество примеров команд. Проект сильно завязан на Linux-хост, KVM, права доступа и аппаратную совместимость.

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

Как используют

Сценарии применения — исследование безопасности, проверка сборок, автоматизированные тесты, воспроизведение поведения macOS и эксперименты с окружением. Особенно проект полезен тем, кто уже работает на Linux и понимает QEMU.

Для повседневной работы с macOS такой подход часто неудобен: графика, звук, ускорение и обновления могут требовать ручной настройки. Для надежной разработки под Apple-платформы физическое устройство или официальный виртуализатор все еще проще.

Сильные стороны и ограничения

Сильная сторона Docker-OSX — воспроизводимость запуска и богатая документация по вариантам. Команда может сохранить команду запуска и повторять окружение.

Ограничения серьезные: производительность зависит от железа, настройка может быть хрупкой, а юридические условия macOS нельзя игнорировать. Это инструмент для технически уверенного пользователя.

Практический смысл Docker-OSX чаще всего в воспроизводимой лаборатории. Команда может описать запуск одной командой, сохранить параметры и повторить среду позже. Но для интерактивной ежедневной работы такой слой почти всегда требует больше терпения, чем обычная машина.

Проект также полезен как учебный материал по границе Docker и виртуализации. Он хорошо показывает, где контейнер только упаковывает запуск, а настоящая работа происходит в QEMU, KVM, образах дисков и настройках доступа к устройствам.

Пример

Идея запуска через Docker

Пример показывает общий вид команды: контейнер получает доступ к KVM и запускает виртуальную macOS через подготовленный образ.

Язык: Bash
docker run --privileged \
  --device /dev/kvm \
  -p 50922:10022 \
  sickcodes/docker-osx:latest