为什么 virtualbox 运行 在 docker 下这么慢?
Why is virtualbox running so slowly under docker?
我正在尝试将 virtualbox 设置为 docker 内的 运行。我已经过了 is it possible to run virtualbox inside a docker container 因为我可以启动 VBoxManage 但不幸的是它在最终稳定之前以 100% CPU 旋转了几分钟(尽管在主机上工作得很好)。
这是我运行宁的 Dockerfile:https://github.com/fommil/freeslick/tree/docker-build which includes a Windows XP virtualbox image built using these instructions https://github.com/fommil/freeslick/tree/docker-base
我的主机有 dkms 运行ning(和 virtualbox/that 图像工作),我在特权模式下启动容器(为简单起见):
docker run -i -t --privileged=true fommil/freeslick:build
但是当我使用
启动无头 VM 时
VBoxManage startvm --type headless MSSQL
(当 运行 仅在主机上时有效)VBox 仅消耗 100%,我期望的服务有时永远不会启动(我试图通过 tsql
连接到 MSSQL,请参阅同一存储库中的 await-mssql.sh
脚本。
为了让事情简单明了,我的主机和容器都是 运行ning Debian Jessie(尽管我最终想 运行 Jessie 在外部托管 Ubuntu VPS...让我们改天再说)
为了能够 docker 下的 运行 virtualbox,我还需要做些什么吗?
当 运行 在容器内时,日志文件中没有任何异常,也许除了这个(执行命令 0x30 将近 3 分钟)
00:00:03.176907 Guest Log: BIOS: Booting from Hard Disk...
00:02:48.776941 PIIX3 ATA: execution time for ATA command 0x30 was 164 seconds
在主机上运行ning 时没有这样的0x30 命令。
更新 ATA command 0x30 is WRITE SECTORS。我想知道 docker 是否正在为我的 6GB windows 驱动器执行 "copy on write",只是作为 Windows 启动过程的一部分。嗯。
回答我自己的问题:这确实是写时复制行为。我的 VPS 有非常慢的硬盘驱动器,在 docker 下变得更慢。解决方法是尝试为我的图像使用更快的体积,并在启动图像之前在 space 中创建新副本。
我正在尝试将 virtualbox 设置为 docker 内的 运行。我已经过了 is it possible to run virtualbox inside a docker container 因为我可以启动 VBoxManage 但不幸的是它在最终稳定之前以 100% CPU 旋转了几分钟(尽管在主机上工作得很好)。
这是我运行宁的 Dockerfile:https://github.com/fommil/freeslick/tree/docker-build which includes a Windows XP virtualbox image built using these instructions https://github.com/fommil/freeslick/tree/docker-base
我的主机有 dkms 运行ning(和 virtualbox/that 图像工作),我在特权模式下启动容器(为简单起见):
docker run -i -t --privileged=true fommil/freeslick:build
但是当我使用
启动无头 VM 时VBoxManage startvm --type headless MSSQL
(当 运行 仅在主机上时有效)VBox 仅消耗 100%,我期望的服务有时永远不会启动(我试图通过 tsql
连接到 MSSQL,请参阅同一存储库中的 await-mssql.sh
脚本。
为了让事情简单明了,我的主机和容器都是 运行ning Debian Jessie(尽管我最终想 运行 Jessie 在外部托管 Ubuntu VPS...让我们改天再说)
为了能够 docker 下的 运行 virtualbox,我还需要做些什么吗?
当 运行 在容器内时,日志文件中没有任何异常,也许除了这个(执行命令 0x30 将近 3 分钟)
00:00:03.176907 Guest Log: BIOS: Booting from Hard Disk...
00:02:48.776941 PIIX3 ATA: execution time for ATA command 0x30 was 164 seconds
在主机上运行ning 时没有这样的0x30 命令。
更新 ATA command 0x30 is WRITE SECTORS。我想知道 docker 是否正在为我的 6GB windows 驱动器执行 "copy on write",只是作为 Windows 启动过程的一部分。嗯。
回答我自己的问题:这确实是写时复制行为。我的 VPS 有非常慢的硬盘驱动器,在 docker 下变得更慢。解决方法是尝试为我的图像使用更快的体积,并在启动图像之前在 space 中创建新副本。