Можно ли запустить Mac OS X внутри Docker?

Можно ли запустить Mac OS X внутри Docker? Если да, то есть какие-нибудь предложения относительно того, как это сделать?

И будет ли он работать без головы, или будет возможность удаленного подключения к графическому интерфейсу?

Docker предоставляет методы для управления контейнерами на уровне ОС и построен поверх встроенных функций Linux для контейнеризации на уровне ОС. Все контейнеры, работающие в системе, используют одно и то же ядро; Mac OS X использует не ядро Linux, а скорее ядро mach, поэтому в настоящее время его нельзя запустить внутри контейнера Docker.

Вы можете запустить Docker на ваш Mac использует виртуальную машину, но контейнеры, работающие на этом экземпляре, должны работать под управлением Linux.

Теперь, когда Docker использует libcontainer, а не LXC в качестве основы, возможно, что перенос libcontainer в будущем однажды позволит запускать контейнеры Docker для Windows и Mac OS соответственно в этих системах, но это будет зависеть от наличия соответствующих функций ОС, позволяющих осуществлять контейнеризацию.

Возможен запуск виртуальной машины OSX в контейнере Docker. Взгляните на https://github.com/Cleafy/sxkdvm например.

Если вы хотите запустить macOS непосредственно внутри Docker, ответ таков нет, см. @phoebus's ответ.

Если вам это действительно нужно, посмотрите у @Andrea Brancaleon ответ который предлагает установить macOS внутри виртуальной машины внутри Docker.

Но если вам интересно, возможно ли приведенное выше решение в соответствии с лицензией macOS, то ответ снова нет*.

Цитирование лицензионное соглашение на программное обеспечение для macOS Catalina, раздел 2, пункт В:

[...] you are granted a limited, non-transferable, non-exclusive license: [...](iii) to install, use and run up to two (2) additional copies or instances of the Apple Softwarewithin virtual operating system environments on each Mac Computer you own or control that isalready running the Apple Software, for purposes of: (a) software development; (b) testing duringsoftware development; (c) using macOS Server; or (d) personal, non-commercial use.

То же самое относится и к более старым версиям macOS.


* если только вы не собираетесь запускать macOS внутри виртуальной машины внутри контейнера Linux Docker внутри виртуальной машины Linux в хост-системе macOS на оборудовании Mac

Возможный дубликат How can I run a full OS in a Docker container, without specifying a command? - Server Fault