![Docker 在 macOS (10.13) High Sierra 上仍使用 VirtualBox 吗?](https://linux22.com/image/1567953/Docker%20%E5%9C%A8%20macOS%20(10.13)%20High%20Sierra%20%E4%B8%8A%E4%BB%8D%E4%BD%BF%E7%94%A8%20VirtualBox%20%E5%90%97%EF%BC%9F.png)
答案1
好问题。看起来有点令人困惑根据文件规定:
但随后又说:
目前,没有
docker-machine create
HyperKit 驱动程序,因此请使用virtualbox
驱动程序创建本地机器。(请参阅Oracle VirtualBox 的 Docker Machine 驱动程序)您可以在同一系统上运行 HyperKit 和 Oracle VirtualBox。要了解更多信息,请参阅Docker for Mac 与 Docker Toolbox。
因此,如果您不担心,docker-machine create
那么您可以在不安装 VirtualBox 的情况下使用 Docker CE。但如果您问我,似乎在某个时候您可能会在使用容器时遇到问题,因此最好的选择是保持 VirtualBox 的安装。
我个人最好的建议是,如果你不想使用 VirtualBox,那就暂时放弃它,用 Docker CE 做你想做的事。如果你遇到了一些命令障碍(例如docker-machine create
上面提到的问题),那么只需安装 VirtualBox 并接受它作为在 macOS 上使用 Docker 的“入场费”。
答案2
以下是关于此问题的简要更新:根据官方文档https://docs.docker.com/docker-for-mac/docker-toolbox/:
Docker Desktop for Mac 使用 HyperKit 而不是 Virtual Box。Hyperkit 是一种轻量级 macOS 虚拟化解决方案,基于 macOS 10.10 Yosemite 及更高版本中的 Hypervisor.framework 构建。
但它有一个很大的局限性:
另请注意,Docker Desktop for Mac 无法将流量路由到容器,因此您无法从托管计算机直接访问正在运行的容器上的公开端口。
如果您确实需要多个虚拟机,例如在测试多节点群集时,您可以继续使用 Docker Machine,它在 Docker Desktop for Mac 范围之外运行。请参阅 Docker Toolbox 和 Docker Desktop for Mac 共存。
因此,虽然 Hyperkit 是最接近 macOS 上本机虚拟化的,并且可能比基于 VirtualBox 的 docker 环境开销更小,但它也缺乏在网络上公开容器的能力。
就我个人而言,我认为这没什么大不了的,因为很少有人运行基于 Mac 的服务器,而且当他们这样做时,图形用户界面不应该成为阻碍因素。Docker Toolbox 仍然使用 Virtualbox,并将提供命令行界面来在网络上运行您需要的任何内容。