Kann Mac OS X in Docker ausgeführt werden?

Kann Mac OS X in Docker ausgeführt werden? Wenn ja, irgendwelche Vorschläge wie?

Und würde es kopflos laufen oder gäbe es die Möglichkeit, eine Remote-Verbindung zur GUI herzustellen?

Docker bietet Methoden zum Verwalten von Containern auf Betriebssystemebene und baut auf den nativen Linux-Funktionen für die Containerisierung auf Betriebssystemebene auf. Mac OS X verwendet nicht den Linux-Kernel, sondern einen Mach-Kernel, sodass er derzeit nicht in einem Docker-Container ausgeführt werden kann.

Sie können Docker ausführen auf ihr Mac verwendet eine virtuelle Maschine, aber Container, die auf dieser Instanz ausgeführt werden, müssten Linux ausführen.

Jetzt, da Docker libcontainer anstelle von LXC als Basis verwendet, ist es möglich, dass die zukünftige Portierung von libcontainer eines Tages die Ausführung von Windows- und Mac OS-Docker-Containern auf diesen Systemen ermöglichen könnte, aber es würde davon abhängen, ob geeignete Betriebssystemfunktionen verfügbar sind Containerisierung.

Das Ausführen einer OSX-VM in einem Docker-Container ist möglich. Werfen Sie einen Blick auf https://github.com/Cleafy/sxkdvm beispielsweise.

Wenn Sie macOS direkt in Docker ausführen möchten, lautet die Antwort Nein, siehe @phoebus's Antwort.

Wenn Sie es wirklich brauchen, sehen Sie @Andrea Brancaleons Antwort was vorschlägt, macOS in VM in Docker zu installieren.

Wenn Sie sich jedoch fragen, ob die obige Lösung gemäß der macOS-Lizenz möglich ist, lautet die Antwort erneut Nein*.

Quoting softwarelizenzvereinbarung für macOS Catalina, abschnitt 2, Buchstabe 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.

Gleiches gilt für ältere macOS-Versionen.


* es sei denn, Sie führen macOS in einer virtuellen Maschine in einem Linux-Docker-Container in einer virtuellen Linux-Maschine auf einem macOS-Hostsystem auf Mac-Hardware aus

Mögliches Duplikat von How can I run a full OS in a Docker container, without specifying a command? - Server Fault