¿Se puede ejecutar Mac OS X dentro de Docker?

¿Se puede ejecutar Mac OS X dentro de Docker? Si es así, ¿alguna sugerencia sobre cómo?

¿Y se ejecutaría sin cabeza, o habría una posibilidad de conectarse a la GUI de forma remota?

Docker proporciona métodos para administrar contenedores a nivel de sistema operativo y se basa en las características nativas de Linux para la contenedorización a nivel de sistema operativo. Todos los contenedores que se ejecutan en un sistema comparten el mismo kernel; Mac OS X no usa el kernel de Linux, sino un kernel de mach, por lo que no se puede ejecutar dentro de un contenedor de Docker en este momento.

Puedes ejecutar Docker en su Mac usa una máquina virtual, pero los contenedores que se ejecutan en esa instancia deberían ejecutar Linux.

Ahora que Docker usa libcontainer en lugar de LXC como base, es posible que la migración de libcontainer en el futuro algún día permita ejecutar contenedores Docker de Windows y Mac OS en esos sistemas, respectivamente, pero dependería de que las características apropiadas del sistema operativo estén disponibles para permitir la contenedorización.

Es posible ejecutar una máquina virtual OSX en un contenedor Docker. Echa un vistazo a https://github.com/Cleafy/sxkdvm por ejemplo.

Si desea ejecutar macOS directamente dentro de Docker, la respuesta es no, ver @phoebus del respuesta.

Si realmente lo necesita, consulte @Andrea Brancaleon del respuesta lo que sugiere instalar macOS dentro de VM dentro de Docker.

Pero si se pregunta si la solución anterior es posible de acuerdo con la licencia de macOS, la respuesta es nuevamente no*.

Citar acuerdo de licencia de software para macOS Catalina, sección 2, letra B:

[...] 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.

Lo mismo ocurre con las versiones anteriores de macOS.


* a menos que vaya a ejecutar macOS dentro de una máquina virtual dentro de un contenedor Docker de Linux dentro de una máquina virtual de Linux en el sistema host de macOS en el hardware de Mac

Posible duplicado de How can I run a full OS in a Docker container, without specifying a command? - Server Fault