Docker 在 macOS (10.13) High Sierra 上仍使用 VirtualBox 吗?

Docker 在 macOS (10.13) High Sierra 上仍使用 VirtualBox 吗?

我正在使用 Docker CE v18.06.0-ce-mac70 (26399)。它是否仍需要 VirtualBox 来运行容器?如果我卸载 VirtualBox,Docker 还能运行吗?

在此处输入图片描述

答案1

好问题。看起来有点令人困惑根据文件规定

Docker for Mac 用途超级套件,一款基于 macOS 的轻量级虚拟化解决方案虚拟机管理程序框架

但随后又说:

目前,没有docker-machine createHyperKit 驱动程序,因此请使用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,并将提供命令行界面来在网络上运行您需要的任何内容。

相关内容