docker 在虚拟机上的 Windows Server 2016 上提取图像需要太多时间

docker 在虚拟机上的 Windows Server 2016 上提取图像需要太多时间

我在使用 Hyper-V WS2016 VM 时遇到问题,尤其是在使用 docker 时。

我们最近在一台配备 Intel Xeon E5-2620 v4 CPU 的主机上安装了几台 Windows Server 2016 虚拟机。我们为每台机器分配了 2 到 3 个 vCPU。该主机来自第三方,我们无法直接访问 Hyper-V 管理器。问题是,即使 CPU 使用率低于 10%,它们有时运行缓慢,甚至不时冻结。它几乎不会高于这个值。

我们想在其中一台虚拟机上使用适用于 Windows 的 docker 容器。但是,docker 提取映像花费了太多时间,最后却以文件读取错误而灾难性地结束。下载过程不需要花费太多时间,但问题是提取。我们在构建中使用的映像是官方的 windowsservercore 映像。我们尝试使用不同的标签。从 repo 中提取的小型测试项目的输出如下:

https://i.stack.imgur.com/2m5qz.jpg

这个使用了 iss:windowsservercore 镜像,其他标签也有同样的问题。奇怪的是,带有 nanoserver 的官方 hello-world 项目可以运行。但提取和运行它也需要太多时间。

另外,我尝试在 2 台虚拟机上更新 Windows。其中一台虚拟机将使用 docker,另一台则不使用。前者在更新状态屏幕中告诉我更新存在一些问题,而后者则停留在重启阶段,我只能在通过远程桌面登录时在屏幕上看到“正在重启”。

我猜想这些可能是 WS16 的问题,以及 Hyper-V 运行 WS16 映像的方式,或者 Hyper-V 设置的问题。我们还使用装有 WS2012 的虚拟机,它们运行没有问题。我怀疑另一个罪魁祸首是硬盘,因为提取映像失败并出现读取错误,尽管安装程序相对较快,磁盘是 SSD,并且所有机器上都有足够的空闲空间。

这可能是处理器分配的问题吗?如果您能想到的话,我们应该告诉服务器提供商调整虚拟机设置吗?我认为嵌套虚拟化未启用并且它导致了问题,但我能够拉取并运行“hello-world”图像,还有另一个包含 windows nanoserver 的图像。

先感谢您 :)

相关内容