O Mac OS X pode ser executado dentro do Docker?

O Mac OS X pode ser executado dentro do Docker? Em caso afirmativo, alguma sugestão de como?

E estaria funcionando sem cabeça, ou haveria a possibilidade de se conectar à GUI remotamente?

O Docker fornece métodos para gerenciar contêineres no nível do sistema operacional e é construído sobre os recursos nativos do Linux para conteinerização no nível do sistema operacional. Todos os contêineres em execução em um sistema compartilham o mesmo kernel; o Mac OS X não usa o kernel Linux, mas sim um kernel mach, portanto, não pode ser executado dentro de um contêiner Docker no momento.

Você pode executar Docker no seu Mac usando uma máquina virtual, mas os contêineres em execução nessa instância precisariam executar o Linux.

Agora que o Docker usa libcontainer em vez de LXC como base, é possível que a portabilidade do libcontainer no futuro possa um dia permitir a execução de contêineres Docker do Windows e do Mac OS nesses sistemas, respectivamente, mas dependeria dos recursos apropriados do sistema operacional disponíveis para permitir a conteinerização.

É possível executar uma VM OSX em um contêiner Docker. Dê uma olhada https://github.com/Cleafy/sxkdvm por exemplo.

Se você deseja executar o macOS diretamente dentro do Docker, a resposta é Não, veja @ phoebus's resposta.

Se você realmente precisa, veja @Andrea Brancaleon's resposta o que sugere instalar o macOS dentro da VM dentro do Docker.

Mas se você está se perguntando se a solução acima é possível de acordo com a licença do macOS, a resposta é novamente Não*.

Cotacao contrato de licença de software para macOS Catalina, secção 2, ponto 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.

É o mesmo para versões mais antigas do macOS.


* a menos que você vá executar o macOS dentro de uma máquina virtual dentro de um contêiner do Linux Docker dentro de uma máquina virtual do Linux no sistema host do macOS no hardware do Mac

Possível duplicata de How can I run a full OS in a Docker container, without specifying a command? - Server Fault