2015-04-01 162 views
0

我试图让virtualbox在Docker中运行。我已经过去了is it possible to run virtualbox inside a docker container,因为我可以启动VBoxManage,但不幸的是,它在100%的CPU(尽管在主机上完美工作)旋转几分钟后才最终解决。为什么virtualbox在docker下运行得如此之慢?

这是Dockerfile我快:https://github.com/fommil/freeslick/tree/docker-build,其中包括一个Windows XP的VirtualBox映像使用这些说明构建https://github.com/fommil/freeslick/tree/docker-base

我的主机具有运行DKMS(和VirtualBox的/是形象工程),和我开始在特权模式下的容器(让事情变得简单):

docker run -i -t --privileged=true fommil/freeslick:build 

但是,当我开始一个无头的VM

VBoxManage startvm --type headless MSSQL 

(只在主机上运行时工作)VBox只消耗100%,我期望的服务有时永远不会启动(我试图通过tsql连接到MSSQL,请参阅await-mssql.sh脚本在同一个repo)。

为了让这件事情更简单,我的主机和容器都运行Debian杰西(虽然我最终想要在外部托管的Ubuntu VPS运行杰西...让我们留到另一天)

有为了能够在docker下运行virtualbox,我需要做些额外的事情?

的容器内运行时,也许除了这个(近3分钟做指挥的0x30)没有什么在日志文件中的不利

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 

有主机上运行时,没有这样的0x30命令。

UPDATEATA command 0x30 is WRITE SECTORS。我不知道docker是否正在为我的6GB Windows驱动器进行“复制写入”操作,只是作为Windows启动过程的一部分。嗯。

回答

0

回答我自己的问题:它确实是写复制行为。在我的VPS中,真的很慢的硬盘驱动器在docker下变得更慢。解决方法是尝试为我的图像使用更快的卷,并在启动图像之前在该空间中创建新副本。

相关问题