Mac OS X 可以在 Docker 中运行吗?如果可以,有什么建议吗?
它会无头运行吗,或者是否有可能远程连接到 GUI?
答案1
Docker 提供管理操作系统级容器的方法,并基于 Linux 的操作系统级容器化原生功能构建。系统上运行的所有容器共享同一个内核;Mac OS X 不使用 Linux 内核,而是使用 mach 内核,因此目前无法在 Docker 容器内运行。
您可以运行 Docker在您的 Mac 使用虚拟机,但在该实例上运行的容器需要运行 Linux。
既然 Docker 使用 libcontainer 而不是 LXC 作为基础,那么未来移植 libcontainer 有朝一日可能会允许在这些系统上分别运行 Windows 和 Mac OS Docker 容器,但这将取决于是否有适当的操作系统功能可用于实现容器化。
答案2
在 Docker 容器中运行 OSX VM 是可能的。请查看https://github.com/Cleafy/sxkdvm例如。
答案3
如果你想直接在 Docker 中运行 macOS,答案是不,参见@phoebus 的回答。
如果你真的需要它,请参阅@Andrea Brancaleon 的回答这建议在 Docker 内的 VM 内安装 macOS。
但如果你想知道上述解决方案是否符合 macOS 的许可,那么答案是不*。
引用macOS Catalina 的软件许可协议,第 2 节,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 Software
within virtual operating system environments on each Mac Computer you own or control that is
already running the Apple Software, for purposes of: (a) software development; (b) testing during
software development; (c) using macOS Server; or (d) personal, non-commercial use.
这与旧版 macOS 相同。
* 除非你要在 Mac 硬件上的 macOS 主机系统上的 Linux 虚拟机中的 Linux Docker 容器内的虚拟机内运行 macOS