Boot2docker 在 Windows 上非常慢,没有共享文件夹

Boot2docker very slow on Windows without shared folders

我有一个带有 Oracle 数据库的 Docker 图像,我需要处理大约 500 万行。

我的机器 运行s Windows 7,我在 Virtualbox VM 运行ning Ubuntu 中使用 Docker。 VM 配置有 2 GB RAM 和 4 个逻辑内核。数据库 运行 在 VM 上的 Docker 容器内,我的应用程序的客户端 运行 在主机 Windows 机器上。在那种情况下,应用程序 运行 秒并在 230 秒 .

内处理所有内容

第二种情况是在同一台主机上,但我使用 Boot2docker 而不是 Ubuntu 虚拟机。我还将 Boot2docker VM 配置为使用 2 GB RAM 和 4 个逻辑内核。使用与以前相同的 Docker 图像,我从 Boot2docker 中的容器启动数据库,并使用 Windows 到 运行 客户端。但是,这次测试需要 1840 秒 而不是 230.

这些测试是可重复的,并且变化不超过 5%。

除了CPU和内存,网络配置是一样的(一个适配器作为NAT,一个作为host-only),存储配置是一样的并且在主机上使用相同的磁盘,并且容器不使用主机上的共享文件夹,因为我知道这会导致 Virtualbox 出现性能问题。

我也尝试使用 Debian VM 进行测试,性能与 Ubuntu 相同。

我很困惑为什么会这样。硬件是相同的,VirtualBox 虚拟机中的 Ubuntu 和 Boot2docker 运行 使用完全相同的配置,但 Ubuntu 比 Boot2docker 快 8 倍。知道为什么吗?

我发现了问题。安装 Boot2docker 时,将使用适配器类型半虚拟化网络创建仅主机网络。我将其更改为 PCnet-FAST III,它变得更快了。